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 /src/Progmasoft/ChoiceShrinker.cpp | |
| 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 'src/Progmasoft/ChoiceShrinker.cpp')
| -rw-r--r-- | src/Progmasoft/ChoiceShrinker.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/Progmasoft/ChoiceShrinker.cpp b/src/Progmasoft/ChoiceShrinker.cpp index c1aac19c..b9b5a47d 100644 --- a/src/Progmasoft/ChoiceShrinker.cpp +++ b/src/Progmasoft/ChoiceShrinker.cpp @@ -14,8 +14,8 @@ namespace Progmasoft::Catch3::Detail { bool - IsSimpler(std::span<const std::uint64_t> candidate, - std::span<const std::uint64_t> current) noexcept + IsSimpler(const std::vector<std::uint64_t> &candidate, + const std::vector<std::uint64_t> ¤t) noexcept { if (candidate.size() != current.size()) { @@ -299,7 +299,7 @@ namespace Progmasoft::Catch3::Detail } std::string - EncodeChoices(std::size_t size, std::span<const std::uint64_t> choices) + EncodeChoices(std::size_t size, const std::vector<std::uint64_t> &choices) { // c3.<size>.<choice>-<choice>-... with each number in base 36: short // enough to paste from a CI log, and only characters that survive @@ -329,7 +329,7 @@ namespace Progmasoft::Catch3::Detail std::optional<DecodedChoices> DecodeChoices(std::string_view token) { - if (!token.starts_with(kTokenPrefix)) + if (token.substr(0, kTokenPrefix.size()) != kTokenPrefix) { return std::nullopt; } |