Fixes
- Fixed ambiguous overload issue with
std::optional<T>in C++26. (#3095)- Since
std::optionalwas turned into a range, the partial specialization ofStringMakerfor range-like types and forstd::optional<T>were in conflict.
- Since
Improvements
- Simplified
CATCH_REGISTER_ENUMinternals for faster compilation and retrieval. - Successful assertion are slightly (1-2%) faster.
- Generic (new-style) matchers support constexpr matching in C++20.
- Combining matchers requires C++26.
- Catch2-provided generic matchers are all constexpr enabled.
- Added
STATIC_REQUIRE_THATfor compile-time matcher assertions.- This requires the compiler to support enough
constexprfor matchers, see above.
- This requires the compiler to support enough