HTML is not normally generated for developer documentation. As a result,
the validity of the reST is effectively never checked, and thus contains
a small handful of issues (mostly bad indent). Fix these.
Add, from c++20, templates to manage keys and values. This is a subset of
std::ranges::views::keys and std::ranges::views::values templates.
Moreover, the cm::is_pair and cm::is_tuple helpers are provided to check,
respectively, if the type is a std::pair or a std::tuple.
Improve the coding conventions specified in our source code guide:
- Recommend capitalization for locals as well as members.
- Remove exceptions for `const` placement; new code should always prefer
"east" style.
- Remove separate section; "Code Style" and "Code Conventions" are
similar enough to not need to make a distinction.
Remove this content from the `cmake-developer(7)` manual because it
is relevant only to developers working on CMake itself. Move it to
a guide in the developer documentation.
Update `.clang-format` with configuration to make the 6.0 format as
close as possible to what 3.8 produced before. Then revise the style:
* Indent preprocessor directives (a feature new since 3.8)
* Add a newline and indentation before inheritance `:` and `,`
Rename the Git attribute identifying the format to include the
clang-format version number: `format.clang-format-6.0`. This will aid
external infrastructure in knowing what version of the tool to run.
CMake can now compile as C++11 on all supported platforms. Check that
std::unique_ptr is available and fail early if missing. This will allow
us to use C++11 more broadly in CMake's implementation (previously it
was restricted to the serve mode implementation).
Co-Author: Daniel Pfeifer <daniel@pfeifer-mail.de>