A modern, C++-native, test framework for unit-tests, TDD and BDD - using C++14, C++17 and later (C++11 support is in v2.x branch, and C++03 on the Catch1.x branch)
Description
Currently, to add stringification for std::optional, say, you need to define CATCH_CONFIG_ENABLE_OPTIONAL_STRINGMAKER. This can be tricky to get right with things like pre-compiled headers, unity builds, or other tricks to speed up the build, without dragging it into every single unit test file in the project.
Given Catch2v3 has already gone down the route of using separate headers for extra functionality, it would be useful to have this option here as well - put the relevant StringMaker specialisations into their own headers. That way, enabling formatted output of these types would just involve adding an extra #include, and it would work just fine with PCH, unity builds, etc.
Description Currently, to add stringification for std::optional, say, you need to define
CATCH_CONFIG_ENABLE_OPTIONAL_STRINGMAKER
. This can be tricky to get right with things like pre-compiled headers, unity builds, or other tricks to speed up the build, without dragging it into every single unit test file in the project.Given Catch2v3 has already gone down the route of using separate headers for extra functionality, it would be useful to have this option here as well - put the relevant StringMaker specialisations into their own headers. That way, enabling formatted output of these types would just involve adding an extra #include, and it would work just fine with PCH, unity builds, etc.