Hacker News new | past | comments | ask | show | jobs | submit login

I've been a professional C++ programmer for 24 years now, and neither I, nor anyone I've worked with over this period, used this ridiculous style.



I've used it on larger teams where some enums for feature flags end up getting conflicts all the damn time when you add to the end because the last entry doesn't have a comma.

This might be fixed in various languages/parsers by allowing a trailing comma (e.g. python).

At the end of the day, clang-tidy, black, gofmt, rustfmt all the things and let's never talk about comma placement again.


What if C++ actually allowed that comma? Because... it does.


That's only from C++11. The story I was telling you was from before then.

    $ cat test.cc 
    enum Foo {
     FOO,
     BAR,
    };
    int main(int argc, char** argv) { return 0; }

    $ g++ -std=c++98 -Wpedantic test.cc
    test.cc:3:5: warning: comma at end of enumerator list [-Wpedantic]
        3 |  BAR,
          |    

    $ g++ -std=c++03 -Wpedantic test.cc
    test.cc:3:5: warning: comma at end of enumerator list [-Wpedantic]
        3 |  BAR,
          |     ^

    $ g++ -std=c++11 -Wpedantic test.cc


not everywhere, I often have a need for it in template arguments for instance for type lists:

    std::conditional<
     some_property<
       T, 
       U,
     >,
     int, 
     float,
    >;
is a compile error, I really prefer

    std::conditional<
       some_property<
           T 
         , U
       >
     , int
     , float
    >;


How many code bases have you actually worked on? I can tell you it's very common in constructor initializer-lists to the point that both the mozilla and webkit styles of clang-format does it.


It’s a Haskell thing, and while I don’t use it in any other language, it does look very neat and readable in Haskell.


I thought it was an SQL thing.


It's because it's actually used in a lot of places because it makes sense




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: