1#ifndef __JLANG__JTYPELIST__
2#define __JLANG__JTYPELIST__
13namespace JPP {
using namespace JLANG; }
21 template<
class JHead_t = JNullType,
class JTail_t = JNullType>
32 template<
unsigned int N,
class T>
60 template<
class JHead_t,
class JTail_t>
90 template<
class JHead_t,
class JTail_t>
100 template<
class JHead_t,
class JTail_t,
class T>
113 template<
class JTypelist_t,
class T>
130 template<
class T,
class JTail_t>
140 template<
class JHead_t,
class JTail_t,
class T>
150 template<
class JHead_t1,
class JTail_t1,
class JHead_t2,
class JTail_t2>
162 template<
class JHead_t1,
class JTail_t1,
class JHead_t2>
176 template<
class JTypeList_t>
struct JLength {};
182 template<
class JHead_t,
class JTail_t>
202 template<
class JTypeList_t,
class T>
209 template<
class JHead_t,
class JTail_t,
class T>
219 template<
class JTail_t,
class T>
222 enum { value =
true };
232 enum { value =
false };
242 enum { value =
true };
259 template<
class JHead_t,
class JTail_t>
272 template<
class JTypelist_t,
unsigned int index,
bool range_check = true>
279 template<
class JHead_t,
class JTail_t,
unsigned int index,
bool range_check>
289 template<
class JHead_t,
class JTail_t,
bool range_check>
299 template<
unsigned int index>
309 template<
class JTypeList_t,
class T>
316 template<
class JHead_t,
class JTail_t,
class T>
323 enum { value = (tmp == -1 ? -1 : tmp + 1) };
330 template<
class JTail_t,
class T>
350 template<
class T,
class ...Args>
359 template<
class JHead_t,
class JTail_t,
class T,
class ...Args>
368 template<
class JHead_t,
class T,
class ...Args>
377 template<
class JHead_t,
class JTail_t>
413 template<
class JObject_t,
class JHead_t,
class JTail_t>
433 template<
class JObject_t,
class T>
446 template<
class JObject_t>
462 template<
class JTypelist_t,
class JObject_t>
Auxiliary classes and methods for language specific functionality.
void for_each(JObject_t &object, JType< JTypeList< JHead_t, JTail_t > > typelist)
For each data type method.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
JTypeList< JHead_t, JTail_t > typelist
JTypeList< JHead_t, typename JAppend< JTail_t, T >::typelist > typelist
JTypeList< JHead_t, JTail_t > typelist
Test presence of data type in type list.
Indexing of data type in type list.
JTypeList< T, JNullType > typelist
JTypeList< T, typename JMultipleType< N-1, T >::typelist > typelist
Auxiliary class for no type definition.
JRemove< JTypeList< JHead_t1, JTail_t1 >, JHead_t2 >::typelist typelist
JRemove< typenameJRemove< JTypeList< JHead_t1, JTail_t1 >, JHead_t2 >::typelist, JTail_t2 >::typelist typelist
JTypeList< JHead_t, typename JRemove< JTail_t, T >::typelist > typelist
Removal of data type from type list.
JTypeList< JHead_t, JTail_t > typelist
Resolve template class to JTypeList.
JTypeList< JHead_t, typename JTYPELIST< T, Args... >::typelist > typelist
JTypeList< JHead_t, typename JTYPELIST< JTail_t, T, Args... >::typelist > typelist
JTypeList< JHead_t, JTail_t > typelist
Auxiliary class for recursive type list generation.
JTypeList< T, typename JTYPELIST< Args... >::typelist > typelist
JTypeAt< JTail_t, index-1, range_check >::value_type value_type
Extraction of data type from type list.
Auxiliary class for a type holder.