The Gaudi Framework  v30r3 (a5ef0a68)
GaudiUtils Namespace Reference

Forward declarations for the functions in SerializeSTL.h. More...

Namespaces

 details
 
 GaudiUtilsConf
 

Classes

class  Allocator
 Allocator. More...
 
class  AllocatorPool
 Allocator pool. More...
 
struct  GenericHash
 Generic hash implementation (for easy migration to the new Hash class). More...
 
class  Hash
 Simple hash function. More...
 
struct  Hash< const T & >
 remove extra qualifiers: More...
 
struct  Hash< const T * >
 remove extra qualifiers: More...
 
struct  Hash< const T >
 remove extra qualifiers: More...
 
struct  Hash< const T(&)[N]>
 generic specialization for arrays More...
 
struct  Hash< T & >
 remove extra qualifiers: More...
 
struct  Hash< T * >
 the partial specialization for pointers More...
 
struct  Hash< T(&)[N]>
 generic specialization for arrays More...
 
class  HashMap
 Common class providing an architecture-independent hash map. More...
 
class  Map
 Extension of the STL map. More...
 
class  VectorMap
 A bit modified version of 'Loki::AssocVector' associative vector from Loki library by Andrei Alexandrescu. More...
 

Functions

template<class T , class ALLOC >
std::ostreamoperator<< (std::ostream &s, const std::vector< T, ALLOC > &v)
 Serialize an std::vector in a python like format. E.g. "[1, 2, 3]". More...
 
template<class T , std::size_t N>
std::ostreamoperator<< (std::ostream &s, const std::array< T, N > &v)
 Serialize an std::array in a python like format. E.g. "[1, 2, 3]". More...
 
template<class T , class ALLOC >
std::ostreamoperator<< (std::ostream &s, const std::list< T, ALLOC > &l)
 Serialize an std::list in a python like format. E.g. "[1, 2, 3]". More...
 
template<class T1 , class T2 >
std::ostreamoperator<< (std::ostream &s, const std::pair< T1, T2 > &p)
 Serialize an std::list in a python like format. E.g. "(1, 2)". More...
 
template<class T1 , class T2 , class COMP , class ALLOC >
std::ostreamoperator<< (std::ostream &s, const std::map< T1, T2, COMP, ALLOC > &m)
 Serialize an std::map in a python like format. E.g. "{a: 1, b: 2}". More...
 
template<class K , class T , class M >
std::ostreamoperator<< (std::ostream &s, const GaudiUtils::Map< K, T, M > &m)
 Serialize a GaudiUtils::Map in a python like format. E.g. "{a: 1, b: 2}". More...
 
template<class K , class T , class H , class M >
std::ostreamoperator<< (std::ostream &s, const GaudiUtils::HashMap< K, T, H, M > &m)
 Serialize a GaudiUtils::HashMap in a python like format. More...
 

Detailed Description

Forward declarations for the functions in SerializeSTL.h.

Author
Marco Clemencic
See also
SerializeSTL.h

Function Documentation

template<class T , class ALLOC >
std::ostream & GaudiUtils::operator<< ( std::ostream s,
const std::vector< T, ALLOC > &  v 
)
inline

Serialize an std::vector in a python like format. E.g. "[1, 2, 3]".

Definition at line 62 of file SerializeSTL.h.

63  {
64  return details::ostream_joiner( s << '[', v, ", " ) << ']';
65  }
Stream & ostream_joiner(Stream &os, const Container &c, Separator sep, OutputElement output=OutputElement{})
Definition: SerializeSTL.h:54
template<class T , std::size_t N>
std::ostream& GaudiUtils::operator<< ( std::ostream s,
const std::array< T, N > &  v 
)
inline

Serialize an std::array in a python like format. E.g. "[1, 2, 3]".

Definition at line 69 of file SerializeSTL.h.

70  {
71  return details::ostream_joiner( s << '[', v, ", " ) << ']';
72  }
Stream & ostream_joiner(Stream &os, const Container &c, Separator sep, OutputElement output=OutputElement{})
Definition: SerializeSTL.h:54
template<class T , class ALLOC >
std::ostream & GaudiUtils::operator<< ( std::ostream s,
const std::list< T, ALLOC > &  l 
)
inline

Serialize an std::list in a python like format. E.g. "[1, 2, 3]".

Definition at line 76 of file SerializeSTL.h.

77  {
78  return details::ostream_joiner( s << '[', l, ", " ) << ']';
79  }
Stream & ostream_joiner(Stream &os, const Container &c, Separator sep, OutputElement output=OutputElement{})
Definition: SerializeSTL.h:54
template<class T1 , class T2 >
std::ostream & GaudiUtils::operator<< ( std::ostream s,
const std::pair< T1, T2 > &  p 
)
inline

Serialize an std::list in a python like format. E.g. "(1, 2)".

Definition at line 83 of file SerializeSTL.h.

84  {
85  return s << '(' << p.first << ", " << p.second << ')';
86  }
template<class T1 , class T2 , class COMP , class ALLOC >
std::ostream & GaudiUtils::operator<< ( std::ostream s,
const std::map< T1, T2, COMP, ALLOC > &  m 
)
inline

Serialize an std::map in a python like format. E.g. "{a: 1, b: 2}".

Definition at line 90 of file SerializeSTL.h.

91  {
92  return details::ostream_joiner( s << "{", m, ", ",
93  []( std::ostream& os, const std::pair<const T1, T2>& p ) -> std::ostream& {
94  return os << p.first << ": " << p.second;
95  } )
96  << "}";
97  }
Stream & ostream_joiner(Stream &os, const Container &c, Separator sep, OutputElement output=OutputElement{})
Definition: SerializeSTL.h:54
STL class.
template<class K , class T , class M >
std::ostream & GaudiUtils::operator<< ( std::ostream s,
const GaudiUtils::Map< K, T, M > &  m 
)
inline

Serialize a GaudiUtils::Map in a python like format. E.g. "{a: 1, b: 2}".

Definition at line 101 of file SerializeSTL.h.

102  {
103  // Serialize the internal map.
104  return s << static_cast<const M&>( m );
105  }
constexpr double m
Definition: SystemOfUnits.h:94
template<class K , class T , class H , class M >
std::ostream & GaudiUtils::operator<< ( std::ostream s,
const GaudiUtils::HashMap< K, T, H, M > &  m 
)
inline

Serialize a GaudiUtils::HashMap in a python like format.

E.g. "{a: 1, b: 2}". This implementation is not efficient, but very simple. Anyway a print-out of a hash map is not something that we do every second.

Definition at line 111 of file SerializeSTL.h.

112  {
113  // Copy the hash map into a map to have it ordered by key.
114  return s << GaudiUtils::Map<K, T>( m.begin(), m.end() );
115  }
iterator end()
Definition: Map.h:134
iterator begin()
Definition: Map.h:133