13 #ifndef DD4HEPPROPERTYPARSERS_PARSERVALUETOSTREAM_H 
   14 #define DD4HEPPROPERTYPARSERS_PARSERVALUETOSTREAM_H 1 
   54     std::ostream& 
toStream(
const TYPE& obj, std::ostream& 
s);
 
   67     template <
class ITERATOR>
 
   68     inline std::ostream& 
toStream(ITERATOR first, 
 
   71                                   const std::string& open,                  
 
   72                                   const std::string& close,                 
 
   73                                   const std::string& delim);                
 
   81     inline std::ostream& 
toStream(
const std::string& obj, std::ostream& 
s) {
 
   82       if (std::string::npos == obj.find(
'\'')) {
 
   83         s << 
"\'" << obj << 
"\'";
 
   86         s << 
"\"" << obj << 
"\"";
 
   94     inline std::ostream& 
toStream(
const bool obj, std::ostream& 
s) {
 
   95       return s << (obj ? 
"True" : 
"False");
 
  101     inline std::ostream& 
toStream(
const float obj, std::ostream& 
s, 
const int prec = 6) {
 
  102       const int p = s.precision();
 
  103       return s << std::setprecision(prec) << obj << std::setprecision(p);
 
  109     inline std::ostream& 
toStream(
const double obj, std::ostream& 
s, 
const int prec = 8) {
 
  110       const int p = s.precision();
 
  111       return s << std::setprecision(prec) << obj << std::setprecision(p);
 
  117     inline std::ostream& 
toStream(
const long double obj, std::ostream& 
s, 
const int prec = 10) {
 
  118       const int p = s.precision();
 
  119       return s << std::setprecision(prec) << obj << std::setprecision(p);
 
  129     template <
class KTYPE, 
class VTYPE>
 
  130     inline std::ostream& 
toStream(
const std::pair<KTYPE, VTYPE>& obj, std::ostream& 
s) {
 
  144     template <
class TYPE, 
class ALLOCATOR>
 
  145     inline std::ostream& 
toStream(
const std::vector<TYPE, ALLOCATOR>& obj, std::ostream& 
s) {
 
  146       return toStream(obj.begin(), obj.end(), 
s, 
"[ ", 
" ]", 
" , ");
 
  155     template <
class TYPE, 
class ALLOCATOR>
 
  156     inline std::ostream& 
toStream(
const std::list<TYPE, ALLOCATOR>& obj, std::ostream& 
s) {
 
  157       return toStream(obj.begin(), obj.end(), 
s, 
"[ ", 
" ]", 
" , ");
 
  166     template <
class TYPE, 
class ALLOCATOR>
 
  167     inline std::ostream& 
toStream(
const std::deque<TYPE, ALLOCATOR>& obj, std::ostream& 
s) {
 
  168       return toStream(obj.begin(), obj.end(), 
s, 
"[ ", 
" ]", 
" , ");
 
  177     template <
class TYPE, 
class CMP, 
class ALLOCATOR>
 
  178     inline std::ostream& 
toStream(
const std::set<TYPE, CMP, ALLOCATOR>& obj, std::ostream& 
s) {
 
  179       return toStream(obj.begin(), obj.end(), 
s, 
"[ ", 
" ]", 
" , ");
 
  189     template <
class KTYPE, 
class VTYPE, 
class CMP, 
class ALLOCATOR>
 
  190     inline std::ostream& 
toStream(
const std::map<KTYPE, VTYPE, CMP, ALLOCATOR>& obj, std::ostream& 
s) {
 
  192       for (
typename std::map<KTYPE, VTYPE, CMP, ALLOCATOR>::const_iterator cur = obj.begin(); obj.end() != cur; ++cur) {
 
  193         if (obj.begin() != cur) {
 
  208     template <
class TYPE, 
unsigned int N>
 
  209     std::ostream& 
toStream(TYPE (&obj)[N], std::ostream& 
s) {
 
  210       return toStream(obj, obj + N, s, 
"( ", 
" )", 
" , ");
 
  217     template <
class TYPE, 
unsigned int N>
 
  218     std::ostream& 
toStream(
const TYPE (&obj)[N], std::ostream& 
s) {
 
  219       return toStream(obj, obj + N, s, 
"( ", 
" )", 
" , ");
 
  226     template <
unsigned int N>
 
  227     std::ostream& 
toStream(
char (&obj)[N], std::ostream& 
s) {
 
  228       return toStream(std::string(obj, obj + N), s);
 
  235     template <
unsigned int N>
 
  236     std::ostream& 
toStream(
const char (&obj)[N], std::ostream& 
s) {
 
  237       return toStream(std::string(obj, obj + N), s);
 
  244     inline std::ostream& 
toStream(
const char* obj, std::ostream& 
s) {
 
  245       return toStream(std::string(obj), s);
 
  253     template <
class TYPE>
 
  254     inline std::ostream& 
toStream(
const TYPE& obj, std::ostream& 
s) {
 
  269     template <
class ITERATOR>
 
  273                                   const std::string& open,                      
 
  274                                   const std::string& close,                     
 
  275                                   const std::string& delim)                     
 
  278       for (ITERATOR curr = first; curr != last; ++curr) {
 
  296     template <
class TYPE>
 
  298       std::ostringstream 
s;
 
  299       std::ios::fmtflags orig_flags = s.flags();
 
  300       s.setf(std::ios::showpoint);   
 
  310 #ifndef DD4HEP_PARSERS_NO_ROOT 
  311 #include "Math/Point3D.h" 
  312 #include "Math/Vector3D.h" 
  313 #include "Math/Vector4D.h" 
  321     std::ostream& 
toStream(
const ROOT::Math::XYZPoint& obj, std::ostream& 
s);
 
  323     std::ostream& 
toStream(
const ROOT::Math::XYZVector& obj, std::ostream& 
s);
 
  325     std::ostream& 
toStream(
const ROOT::Math::PxPyPzEVector& obj, std::ostream& 
s);
 
std::string toString(const TYPE &obj)
std::ostream & toStream(const Property &result, std::ostream &os)