← Back to context

Comment by quietbritishjim

9 days ago

It's just a programming font ligature. If you copy and paste it you'll see the actual characters e.g.

   auto main() -> int {

(It's also modern C++ trailing return type.)

I enjoy that because I have my browser monospace font set to be one that also has those ligatures, your comment isn't enlightening at all (I set it up that way though, so it's not a problem for me :P )

Why would anybody think more words more better?

    int main() {

  • The trailing return type pattern was added to the standard, IIRC, to make it easier for templated functions to have return types that depend on the types of the arguments, such as in this example:

        template <typename A, typename B>
        auto multiply(A a, B b) -> decltype(a * b) {
            return a * b;
        }
    

    Its easier for the compiler to parse everything if `decltype(a * b) occurs _after_ the definition of `a` and `b`. Once this pattern was added and people started using it for that purpose, people also started using the pattern for all functions for consistency.

    • Yes, in that case I completely agree. Using it everywhere is a mistake IMHO. I know there might be a stylistic reason for using it everywhere, but I believe less code is better, unless more code makes it easier to understand.