diff options
| author | Leitwolf11 | 2026-10-31 13:00:24 +0300 |
|---|---|---|
| committer | Leitwolf11 | 2026-10-31 13:00:24 +0300 |
| commit | 8814bd0b796b2e291fa5b4a1033f0313c8a26065 (patch) | |
| tree | e87e5f5150f3712bb05ed53911425600aa871f45 /docs/contributing.md | |
| parent | 6a42cdf6461b2577106ef094d6f98025554b6077 (diff) | |
| download | catch3-8814bd0b796b2e291fa5b4a1033f0313c8a26065.tar.gz | |
Build Catch3 as C++17
C++17 is still the widest common target, and a library built on it stays
usable from C++17 and every later standard, while C++20 would have left
out many users.
Concepts become enable_if on named traits in Detail/TypeTraits.hpp, which
also replaces std::remove_cvref_t and std::identity. std::span becomes
std::vector references, std::bit_cast becomes static_cast and memcpy,
template lambdas become helper templates, and std::erase_if, contains,
starts_with and ends_with have their C++17 forms. Random::Between no
longer uses a lambda over a constexpr local, which MSVC rejects outside
/permissive-, so the headers work under its default mode too.
Tests give up designated initializers, which MSVC refuses in C++17. CI
builds the matrix in C++17 and C++20, since the headers promise both.
Diffstat (limited to 'docs/contributing.md')
| -rw-r--r-- | docs/contributing.md | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/docs/contributing.md b/docs/contributing.md index 05c1f415..82e82675 100644 --- a/docs/contributing.md +++ b/docs/contributing.md @@ -62,13 +62,13 @@ distribution with `python tools/scripts/generateAmalgamatedFiles.py`. what Catch3 promises to keep: code that compiles against Catch2's headers must keep compiling. It stays under the Boost Software License 1.0, keeps the `Catch2 Authors` header and follows the style of the surrounding Catch2 code. -Code that includes only its headers needs C++14. +Code that includes its headers needs C++17 or later. `src/Progmasoft` holds what Progmasoft adds: the runner, the results model, property testing and snapshots. It is licensed `MPL-2.0 WITH AdditionRef-Progmasoft-Exception-1.1`, follows the [Progmasoft C++ Style](https://github.com/Progmasoft/progmasoft-cpp), is -C++20, reports recoverable errors with `Expected` rather than exceptions, and +C++17, reports recoverable errors with `Expected` rather than exceptions, and is formatted with the `.clang-format` beside it. `tools/scripts/checkLicense.py` checks that every source file carries the |