1 #ifndef __JLANG__JTEMPLATEWRITER__
2 #define __JLANG__JTEMPLATEWRITER__
16 namespace JPP {
using namespace JLANG; }
26 template<
class JWriter_t,
35 template<
class JWriter_t>
47 template<
class JClass_t>
48 static inline JWriter_t&
write(JWriter_t& out,
49 const JClass_t&
object,
64 template<
class JClass_t,
class JHead_t,
class JTail_t>
65 static inline JWriter_t&
write(JWriter_t& out,
66 const JClass_t&
object,
69 out << static_cast<const JHead_t&>(
object);
87 template<
class JClass_t,
class JHead_t>
88 static inline JWriter_t&
write(JWriter_t& out,
89 const JClass_t&
object,
92 return out << static_cast<const JHead_t&>(
object);
103 template<
class JWriter_t>
119 template<
class JWriter_t,
class JClass_t,
class JHead_t,
class JTail_t>
130 friend JWriter_t&
operator<<(JWriter_t& out,
const JClass_t&
object)
bool write(const Vec &v, std::ostream &os)
Write a Vec(tor) to a stream.
Auxiliary classes and methods for language specific functionality.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Auxiliary class for no type definition.
friend JWriter_t & operator<<(JWriter_t &out, const JClass_t &object)
Write operator.
static const char * WHITE_SPACE
White space between consecutive items in a type list.
static JWriter_t & write(JWriter_t &out, const JClass_t &object, const JType< JTypeList< JHead_t, JNullType > > &type)
Write method for composite data types.
static JWriter_t & write(JWriter_t &out, const JClass_t &object, const JType< JTypeList< JHead_t, JTail_t > > &type)
Write method for composite data types.
static JWriter_t & write(JWriter_t &out, const JClass_t &object, const JType< JNullType > &type)
Write method for single data types.
Template definition of auxiliary base class for composite data types which derive from one or more ba...
const char * WHITE_SPACE
Specialisation of white space for std::ostream.
Auxiliary class for a type holder.