[HN Gopher] A look at LLVM: comparing clamp implementations
       ___________________________________________________________________
        
       A look at LLVM: comparing clamp implementations
        
       Author : ingve
       Score  : 50 points
       Date   : 2021-04-09 18:07 UTC (4 hours ago)
        
 (HTM) web link (secret.club)
 (TXT) w3m dump (secret.club)
        
       | [deleted]
        
       | pbsd wrote:
       | You can also achieve the fix using the arguably more natural
       | template<typename T>         T const& clamp(T const& v, T const&
       | lo, T const& hi) {             T const& a = v < lo ? lo : v;
       | T const& b = a > hi ? hi : a;             return b;         }
       | 
       | Either way, the commitee's idea of returning references for the
       | C++ max/min/clamp functions was terrible, and it's a constant
       | source of problems with temporaries and such. Like this:
       | https://godbolt.org/z/j593Mebd6
        
         | secondcoming wrote:
         | But it's not unreasonable for a programmer to expect no
         | temporaries in code that just uses references.
         | 
         | The rules are too complex, some of this is down to the language
         | itself and some is the fault of compiler writers.
         | 
         | I find myself using Compiler Explorer more and more for short
         | code snippets to (obviously) see what the compiler is doing
         | because I don't really trust my intuition that much any more.
         | And the annoying thing is that clang and gcc can differ wildly
         | in their codegen.
         | 
         | I don't think anyone can call themselves a C++, or possibly
         | Rust, programmer unless they can also understand assembly code.
         | Just getting code to compile isn't enough. It seems like a step
         | backwards to me.
        
       | jeffbee wrote:
       | "LLVM is so cool because it can be used to solve problems it also
       | caused" is a weird vibe. GCC w/ libstdc++ doesn't have the issue.
        
         | wyldfire wrote:
         | _shrug_ , both projects have bugs. This is an interesting
         | article and I didn't quite read it the same way you had.
        
           | jeffbee wrote:
           | True. Was just my reaction to the last line of the article. I
           | would have chosen "fragile" over "versatile".
        
       | [deleted]
        
       ___________________________________________________________________
       (page generated 2021-04-09 23:00 UTC)