12 #ifndef GAUDIKERNEL_SERIALIZESTL_H_ 13 #define GAUDIKERNEL_SERIALIZESTL_H_ 34 template <
typename Stream,
typename Iterator,
typename Separator,
typename OutputElement = IdentityOutputter>
36 if (first!=last) {
output(os,*first); ++first; }
37 for (;first!=last;++first) {
output(os << sep,*first); }
41 template <
typename Stream,
typename Container,
typename Separator,
typename OutputElement = IdentityOutputter>
49 template <
class T,
class ALLOC>
50 inline std::ostream& operator<< ( std::ostream& s, const std::vector<T,ALLOC>& v )
56 template <
class T, std::
size_t N>
57 inline std::ostream& operator<< ( std::ostream& s, const std::array<T,N>& v )
63 template <
class T,
class ALLOC>
64 inline std::ostream& operator<< ( std::ostream& s, const std::list<T,ALLOC>&
l )
70 template <
class T1,
class T2>
71 inline std::ostream& operator<< ( std::ostream& s, const std::pair<T1,T2>& p )
73 return s <<
'(' << p.first <<
", " << p.second <<
')';
77 template <
class T1,
class T2,
class COMP,
class ALLOC>
84 {
return os << p.first <<
": " << p.second; } )
89 template <
class K,
class T,
class M>
94 return s << static_cast<const M&>(
m);
100 template <
class K,
class T,
class H,
class M>
105 return s << GaudiUtils::Map<K,T>(m.
begin(),m.
end());
Extension of the STL map.
Stream & ostream_joiner(Stream &os, Iterator first, Iterator last, Separator sep, OutputElement output=OutputElement{})
boost::spirit::classic::position_iterator2< ForwardIterator > Iterator
Forward declarations for the functions in SerializeSTL.h.
Common class providing an architecture-independent hash map.
std::ostream & operator()(std::ostream &os, T &&t) const
std::ostream & operator<<(std::ostream &s, const std::vector< T, ALLOC > &v)
Serialize an std::vector in a python like format. E.g. "[1, 2, 3]".