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
..
2014-12-11 23:48:11 +00:00
2014-03-17 18:40:58 +00:00
2014-05-20 18:49:28 +01:00
2014-05-19 18:57:14 +01:00
2015-07-01 07:33:27 +01:00
2015-07-28 18:55:11 +01:00
2016-03-14 19:13:34 +00:00
2015-12-04 10:19:08 +00:00
2014-06-30 07:33:17 +01:00
2014-06-30 07:33:17 +01:00
2014-03-17 18:40:58 +00:00
2015-07-01 07:33:27 +01:00
2016-09-27 10:46:22 +01:00
2016-08-24 09:38:24 -05:00