Hello everybody,
i am currently trying to get an overview on the implementation status of the CppCoreGuidelines in all clang tools and especially clang-tidy.
All rules with a section on enforcement are collected here (GitHub - JonasToth/CppCoreGuidelinesTooling: Overview of tooling support for the CppCoreGuidelines), and if possible there is the checkname for clang-tidy etc. mentioned.
The implementation status in short:
number of rules: 286
number of enforced rules: 123
number of rules without enforcement: 163
The reason I am writing this here: Most of the checks that would enforce the guideline are not in the `cppcoreguidelines-*`-list.
It would be very nice, if there is an easy way to enable all checks for the guideline, but adding ~100 aliases in clang-tidy is infeasable and since many rules would apply to other guidelines as well it isn't scalable, too. Such a change would mean, that sections like `readability, modernize, performance, ...` still exist standalone as well as especially for a guideline implemented checks like `cppcoreguideline-owning-memory`. But when running clang-tidy to enforce a guideline, clang-tidy would directly activate all checks necessary to do so, even if there is no alias in the related module.
I would like to propose/discuss the possibility to have built-in configurations in clang-tidy, that would activate and configure all related checks. Such a feature would benefit other guidelines (High Integrity C++, CERT) and reduce duplication.
A quick way to implement this: custom configuration files directly shipped with clang-tidy.
A discussion on that issue would be very nice! I am willing to spent some time on an implementation for that issue as well.
All the best, Jonas