steveire added a comment. I like the approach of using clang-format to implement this. It's much faster than a `clang-tidy` approach.
The broader C++ community has already chosen `East`/`West` and it has momentum. If you choose `Left`/`Right` now, you will get pressure to add `East`/`West` in the future, which means we'll have the synonyms we want to avoid. The broader C++ community already has understanding of `East`/`West`. Trying to change that now should be out of scope for this patch. This patch should use `East`/`West`. I ran this on a large codebase and discovered some problems with this patch. Given this `.clang-format` file: BasedOnStyle: LLVM PointerAlignment: Left ConstStyle: Right I get the failures as commented here: template <typename T> struct Foo {}; template <> struct Foo<int> { static const int bat; static const int fn(); }; // 'const' inserted in wrong place: int const Foo<int>::bat = 0; // 'const const' inserted in wrong place: int const Foo<int>::fn() { return 0; } void foo() { Foo<Foo<int>> ffi; // '* const' inserted instead of 'const': const Foo<Foo<int>>* p = const_cast<const Foo<Foo<int>>*>(&ffi); } // 'const >' inserted instead of 'const': Foo<const Foo<int>> P; template <typename T> // 'const const' inserted instead of 'const': void fn(const Foo<T>& i); // This is needed to trigger the above 'const const' bug above: #if 0 #else #endif namespace ns { struct S {}; } // namespace ns // not modified: void fns(const ns::S& s); Some of these (eg the `int Foo<int>::bat const = 0`) are the kinds of breakages `clang-format` so far avoids by not reordering tokens, as @sammccall was saying. I don't know if the `clang-format` parser is smart enough to not cause those bugs. Thanks for working on this! CHANGES SINCE LAST ACTION https://reviews.llvm.org/D69764/new/ https://reviews.llvm.org/D69764 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits