22 #ifndef GAUDIKERNEL_SERIALIZESTL_H_ 23 #define GAUDIKERNEL_SERIALIZESTL_H_ 36 template <
class T1,
class T2>
40 template <
class T,
class ALLOC>
44 template <
class T, std::
size_t N>
48 template <
class T,
class ALLOC>
52 template <
class T1,
class T2,
class COMP,
class ALLOC>
56 template <
class K,
class T,
class M>
60 template <
class K,
class T,
class H,
class M>
68 return os << std::forward<T>( t );
72 template <
typename Stream,
typename Iterator,
typename Separator,
typename OutputElement = IdentityOutputter>
74 OutputElement
output = OutputElement{} ) {
75 if ( first != last )
output( os, *first++ );
76 while ( first != last )
output( os << sep, *first++ );
80 template <
typename Stream,
typename Container,
typename Separator,
typename OutputElement = IdentityOutputter>
81 Stream&
ostream_joiner( Stream& os,
const Container&
c, Separator sep, OutputElement
output = OutputElement{} ) {
87 template <
class T1,
class T2>
89 return s <<
'(' << p.first <<
", " << p.second <<
')';
92 template <
class T,
class ALLOC>
97 template <
class T, std::
size_t N>
102 template <
class T,
class ALLOC>
107 template <
class T1,
class T2,
class COMP,
class ALLOC>
111 return os << p.first <<
": " << p.second;
116 template <
class K,
class T,
class M>
119 return s << static_cast<const M&>(
m );
124 template <
class K,
class T,
class H,
class M>
127 return s << GaudiUtils::Map<K, T>(
m.begin(),
m.end() );
Extension of the STL map.
std::ostream & operator<<(std::ostream &s, const std::pair< T1, T2 > &p)
Serialize an std::pair in a python like format. E.g. "(1, 2)".
Stream & ostream_joiner(Stream &os, Iterator first, Iterator last, Separator sep, OutputElement output=OutputElement{})
std::ostream & operator()(std::ostream &os, T &&t) const
boost::spirit::classic::position_iterator2< ForwardIterator > Iterator
Common class providing an architecture-independent hash map.
AttribStringParser::Iterator begin(const AttribStringParser &parser)