[libcxx-commits] [PATCH] D99691: [libcxx] adjusts formatting rules

Mark de Wever via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Wed Mar 31 23:08:35 PDT 2021


Mordante added a comment.

I really like you're working on this!

I'm only concerned the new formatting rules will break valid C++98 code.



================
Comment at: libcxx/.clang-format:5
 Language: Cpp
-Standard: Cpp03
+Standard: Cpp11
 
----------------
Quuxplusone wrote:
> Actually, I'd turn this all the way up to Cpp20 or however high it goes. The only interesting thing controlled by this option AFAIK is whether clang-format will do
> ```
> foo<bar<baz> > x;  // we must do this anywhere C++03-portability is required
> ```
> or
> ```
> foo<bar<baz>> x;  // we prefer this wherever possible
> ```
> Either way, blindly applying clang-format to //actual// libc++ code is going to screw it up one way or the other. But given that you're the only person relying on clang-format to format your patches AFAIK, and you're working exclusively on C++20 code (never on C++03 code), I think it's totally reasonable to check in a style file that specifies `Cpp20`.
 I also rely on clang-format for my patches and I'm not fond that this change allows to break C++98 code. So I prefer `std::vector<std::pair<int, int> >` over `std::vector<std::pair<int, int>>` and my C++03 unit tests break. Ideally I would like to have this option in clang format
```
// clang-format Cpp03
std::vector<std::pair<int, int> > v3;
// clang-format Cpp11
std::vector<std::pair<int, int>> v11;
```
Then we can use a sane default and override it where applicable. I'll reach out to the clang-format developers to see how feasible this would be.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D99691/new/

https://reviews.llvm.org/D99691



More information about the libcxx-commits mailing list