Even more C++20 rules and a few improvements

Hello dear C and C++ users.

We are happy to come to you with a load of new features and improvements.

We added a bunch of new rules mostly focusing on C++20.
S6195[C++20]: “std::enable_if” should not be used
S6226[C++20]: Empty class members should be marked as “[[no_unique_address]]”
S6225 [C++20]: “std::to_address” should be used to convert contiguous iterators to raw pointers
S6229 [C++20]: “std::chrono” components should be used to operate on time
S6230 [C++20]: Comparison operators ("<=>", “==”) should be defaulted unless non-default behavior is required
S6236 [C++11]: Rvalue reference members should not be copied accidentally
S6200 [C,C++]: Detect ‘volatile’ used in structured bindings, return types and function parameters

As always, we also polished a few preexisting rules to lower their noise level and maximize their relevance. All the details are available in the release notes.

All this is already available on SonarCloud.io and will be available with SonarQube 9.2 starting from Developer Edition and in SonarLint soon.

Geoffray

2 Likes