mirror of
https://github.com/catchorg/Catch2.git
synced 2024-11-17 11:12:25 +01:00
a47b8dee74
Standard container types were printed as `"{?}"` (default `toString` implementation for unsupported class). This was contradictory with the documentation: > "Most [...] std types are supported out of the box" when in fact only `string`, `vector` and `tupple` were supported. - Renamed the `toStringVector.cpp` test file to `toStringContainers.cpp` - Types are consider containers if they contain `value_type` and `const_iterator` members and have `begin` and `end` support (members or ADL findable) returning a `const_iterator`. `const_iterator::operator*` must also return a `const value_type &` - Beware that a trying to printing a type fulfilling those requirements but returning invalid iterators will results in undefined behaviour. In such case specialize the Catch::Detail::IsContainer trait to contain `static const bool value = false` to revert to the default behaviour (printing `"{?}"`). Test pretty printing of `std::list`, `std::deque`, `std::forward_list`, `std::array` in Catch assertion macro. More complex structure like `std::queue` or `std::multi_map` should also be tested. Signed-off-by: mat tso <mat-tso@topmail.ie> |
||
---|---|---|
.. | ||
Baselines | ||
SurrogateCpps | ||
ApproxTests.cpp | ||
BDDTests.cpp | ||
ClassTests.cpp | ||
CmdLineTests.cpp | ||
ConditionTests.cpp | ||
EnumToString.cpp | ||
ExceptionTests.cpp | ||
GeneratorTests.cpp | ||
makefile | ||
MessageTests.cpp | ||
MiscTests.cpp | ||
PartTrackerTests.cpp | ||
TagAliasTests.cpp | ||
TestMain.cpp | ||
ToStringContainers.cpp | ||
ToStringPair.cpp | ||
ToStringTuple.cpp | ||
ToStringWhich.cpp | ||
TrickyTests.cpp | ||
VariadicMacrosTests.cpp |