Quuxplusone added a comment. Peanut gallery says: A priori, I don't see any reason for clang-format's `LanguageStandard` options to diverge from Clang's own `-std=` options. It sounds like currently they're very different, and you're proposing to make them basically the same. I think that's a good thing.
GCC and Clang still treat "lack of any `-std=` option" as a synonym for "`-std=c++03`". A priori this is an absolutely terrible default, but there would be some logic in making clang-format follow their lead. The only sensible alternative, IMHO, would be for you to treat "lack of any `-std=` option" as a synonym for MSVC's `-std:c++latest`, which means "`-std=c++2a` today and `-std=c++2b` tomorrow." ================ Comment at: clang/docs/ClangFormatStyleOptions.rst:2227 + * ``LS_Cpp20`` (in configuration: ``Cpp20``) + Use features of C++20 and C++2a (e.g.: treating ``co_yield`` as a keyword, + not an identifier, so ``co_yield++ i`` is formatted as ``co_yield ++i``). ---------------- C++2a //will// be C++20, barring any radically unforeseen events. So saying "C++20 and C++2a" is redundant. Personally I would follow GCC/Clang's lead and say "C++2a" until the standard is actually out. ================ Comment at: clang/include/clang/Format/Format.h:1878 LS_Cpp11, + /// Use features of C++20 and C++2a (e.g.: treating ``co_yield`` as a + /// keyword, not an identifier, so ``co_yield++ i`` is formatted as ---------------- Again, C++2a is likely a synonym for C++20. Three lines earlier, you might want to change "C++1z" to "C++17" (and grep the codebase for other instances of "1z"). ================ Comment at: clang/unittests/Format/FormatTest.cpp:3721 + " aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) <= >\n" + " 5) {\n" "}"); ---------------- This doesn't seem to test what you set out to test, does it? `(x) <= > 5` isn't a valid C++ expression anyway. Maybe what you want to test here is that clang-format is willing to reformat pre-C++2a code LongName<&LongerName::operator<=> x; into LongName< &LongerName::operator<= > x; (that is, that it's willing to insert a line break between `<=` and `>`). However, if clang-format //refused// to insert a line break in that one position even in C++11 mode, would anything of value really be lost? Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D65043/new/ https://reviews.llvm.org/D65043 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits