mirror of
https://github.com/catchorg/Catch2.git
synced 2024-11-26 15:26:11 +01:00
Merge pull request #198 from PureAbstract/vector_to_string
Add allocator support to StringMaker<vector>
This commit is contained in:
commit
22ded1f2bb
@ -99,18 +99,15 @@ struct StringMaker<T*> {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
template<typename T>
|
namespace Detail {
|
||||||
struct StringMaker<std::vector<T> > {
|
template<typename InputIterator>
|
||||||
static std::string convert( std::vector<T> const& v ) {
|
std::string rangeToString( InputIterator first, InputIterator last );
|
||||||
std::ostringstream oss;
|
}
|
||||||
oss << "{ ";
|
|
||||||
for( std::size_t i = 0; i < v.size(); ++ i ) {
|
template<typename T, typename Allocator>
|
||||||
oss << toString( v[i] );
|
struct StringMaker<std::vector<T, Allocator> > {
|
||||||
if( i < v.size() - 1 )
|
static std::string convert( std::vector<T,Allocator> const& v ) {
|
||||||
oss << ", ";
|
return Detail::rangeToString( v.begin(), v.end() );
|
||||||
}
|
|
||||||
oss << " }";
|
|
||||||
return oss.str();
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -230,6 +227,22 @@ inline std::string toString( std::nullptr_t ) {
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
namespace Detail {
|
||||||
|
template<typename InputIterator>
|
||||||
|
std::string rangeToString( InputIterator first, InputIterator last ) {
|
||||||
|
std::ostringstream oss;
|
||||||
|
oss << "{ ";
|
||||||
|
if( first != last ) {
|
||||||
|
oss << toString( *first );
|
||||||
|
for( ++first ; first != last ; ++first ) {
|
||||||
|
oss << ", " << toString( *first );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
oss << " }";
|
||||||
|
return oss.str();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
} // end namespace Catch
|
} // end namespace Catch
|
||||||
|
|
||||||
#endif // TWOBLUECUBES_CATCH_TOSTRING_HPP_INCLUDED
|
#endif // TWOBLUECUBES_CATCH_TOSTRING_HPP_INCLUDED
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* CATCH v1.0 build 10 (master branch)
|
* CATCH v1.0 build 10 (master branch)
|
||||||
* Generated: 2013-09-14 19:56:34.776409
|
* Generated: 2013-09-21 19:07:52.759646
|
||||||
* ----------------------------------------------------------
|
* ----------------------------------------------------------
|
||||||
* This file has been merged from multiple headers. Please don't edit it directly
|
* This file has been merged from multiple headers. Please don't edit it directly
|
||||||
* Copyright (c) 2012 Two Blue Cubes Ltd. All rights reserved.
|
* Copyright (c) 2012 Two Blue Cubes Ltd. All rights reserved.
|
||||||
@ -722,18 +722,15 @@ struct StringMaker<T*> {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
template<typename T>
|
namespace Detail {
|
||||||
struct StringMaker<std::vector<T> > {
|
template<typename InputIterator>
|
||||||
static std::string convert( std::vector<T> const& v ) {
|
std::string rangeToString( InputIterator first, InputIterator last );
|
||||||
std::ostringstream oss;
|
}
|
||||||
oss << "{ ";
|
|
||||||
for( std::size_t i = 0; i < v.size(); ++ i ) {
|
template<typename T, typename Allocator>
|
||||||
oss << toString( v[i] );
|
struct StringMaker<std::vector<T, Allocator> > {
|
||||||
if( i < v.size() - 1 )
|
static std::string convert( std::vector<T,Allocator> const& v ) {
|
||||||
oss << ", ";
|
return Detail::rangeToString( v.begin(), v.end() );
|
||||||
}
|
|
||||||
oss << " }";
|
|
||||||
return oss.str();
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -853,6 +850,22 @@ inline std::string toString( std::nullptr_t ) {
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
namespace Detail {
|
||||||
|
template<typename InputIterator>
|
||||||
|
std::string rangeToString( InputIterator first, InputIterator last ) {
|
||||||
|
std::ostringstream oss;
|
||||||
|
oss << "{ ";
|
||||||
|
if( first != last ) {
|
||||||
|
oss << toString( *first );
|
||||||
|
for( ++first ; first != last ; ++first ) {
|
||||||
|
oss << ", " << toString( *first );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
oss << " }";
|
||||||
|
return oss.str();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
} // end namespace Catch
|
} // end namespace Catch
|
||||||
|
|
||||||
// #included from: catch_assertionresult.h
|
// #included from: catch_assertionresult.h
|
||||||
|
Loading…
Reference in New Issue
Block a user