38 #ifndef ECO_STRSTREAM_H 39 #define ECO_STRSTREAM_H 47 #include "classdesc.h" 53 using std::operator<<;
54 template<
class T,
class charT,
class Traits>
55 std::basic_ostream<charT,Traits>&
operator<<
56 (std::basic_ostream<charT,Traits>& o,
const T& x)
57 {
throw error(
"operator<< not defined for %s",
typeid(T).name());}
66 std::ostringstream impl;
74 string str()
const {
return impl.str();}
81 {impl<<const_cast<const char*>(x);
return *
this;}
83 {impl<<const_cast<const char*>(x);
return *
this;}
89 return operator|(enum_keys<E>()(x));
95 {impl<<x;
return *
this;}
100 if (this->str()[0]==
'\0')
103 return (*
this)|
' '|x;
106 void clear() {impl.str(std::string());}
110 inline std::ostream& operator<<(std::ostream& x,
const eco_strstream& y)
An EcoLab string stream class.
Definition: eco_strstream.h:64
Definition: TCL_obj_base.h:327
controlled template specialisation: stolen from boost::enable_if.
Definition: TCL_obj_base.h:250
Contains definitions related to classdesc functionality.
Definition: arrays.h:2514
_OPENMP
Definition: accessor.h:16