23 Commits

Author SHA1 Message Date
mat tso
a47b8dee74 Add support toString for containers
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>
2016-10-14 04:11:40 +02:00
mat tso
b0c88a3d96 Fix indentation of rangeToString in tostring.h 2016-10-11 04:33:23 +02:00
mat tso
c3d80cf5eb Publish toString support for pairs
Catch::toString support for pairs was implemented and tested
but not accessible from the include folder (thus in releases).
2016-10-11 03:10:41 +02:00
Phil Nash
e91738103c Stripped trailing whitespace from all source code lines
(replaces need for PRs #310 and #504)
2015-11-04 18:04:15 +00:00
Phil Nash
733ebb6024 Added CATCH_CONFIG_CPP11_LONG_LONG support 2015-07-23 23:05:05 +01:00
Phil Nash
805de43a3d Use CATCH_NULL instead of NULL
- expands to nullptr if CATCH_CONFIG_CPP11_NULLPTR is defined (see #444)
2015-07-01 07:33:27 +01:00
Phil Nash
7ab3b5aefb Added compiler feature suppression macros
_NO_ forms to disable detection of features - particularly C++11 features.
Also removed SFINAE detection (and use in tostring)
2015-06-30 08:41:55 +01:00
Phil Nash
e86daf8bdd Reorganised C+11 feature detection a bit
and added CATCH_CONFIG_CPP11_NULLPTR for VS2015
2015-05-19 22:31:57 +01:00
Phil Nash
572911d880 Changed comment to work around header stitching bug 2015-03-04 18:33:31 +00:00
Phil Nash
75a08bbc6c Merge branch 'tuple_to_string' of https://github.com/PureAbstract/Catch into PureAbstract-tuple_to_string 2014-12-30 18:42:17 +00:00
Phil Nash
b0545d1f12 Some toString cleanups 2014-12-09 18:49:58 +00:00
Phil Nash
ea33961b43 Factored out mention of "unprintable string" ("{?}") 2014-09-08 08:14:59 +01:00
Andy Sawyer
022a0b4fcb catch_tostring: toString for std::tuple 2014-09-04 00:31:11 +01:00
Andy Sawyer
3196937343 catch_tostring: Add includes for tuple, type_traits 2014-09-04 00:17:36 +01:00
Andy Sawyer
95956444b7 catch_tostring: Move toString overload declarations
- Put all the declarations of the overloads early in the file, so they
  get seen by the templates later on
2014-09-04 00:12:25 +01:00
Andy Sawyer
cd2a5aa688 catch_tostring: tostring for enum class types 2014-09-01 17:38:17 +01:00
Ben Arnold
7b0a84a048 toString handles wchar_t raw strings 2014-08-14 12:28:23 +01:00
Phil Nash
d89e74faff Format floats like doubles when printing - but add ‘f’ suffix (a lá #291) 2014-07-09 18:16:40 +01:00
Phil Nash
7cbf74061b Tweaked rawMemoryToString() along lines of suggestion in #281 2014-05-23 18:41:02 +01:00
Phil Nash
ad4489043b Unanonymised unions to avoid breaking on compilers that don’t support them
- e.g. GCC 4.3 and 4.4
- fixes #281
2014-05-13 17:48:47 +01:00
Phil Nash
1a6f2a0a80 Changed the way noexcept support is handled to (hopefully) fix #275 and #273 2014-04-23 18:19:19 +01:00
Phil Nash
328a469c03 Moved tostring impl into catch_tostring.hpp 2014-04-23 07:03:15 +01:00
Phil Nash
97150f27ac Renamed catch_tostring.hpp catch_tostring.h
- in preparation for splitting implementation into catch_tostring.hpp
2014-04-23 06:51:58 +01:00