1 #ifndef __JLANG__JTYPELIST__ 
    2 #define __JLANG__JTYPELIST__ 
   13 namespace 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>
 
  379     typedef JTypeList<A, typename JTYPELIST<B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z>::typelist>  
typelist;
 
  386   template<
class JHead_t,
 
  413   struct JTYPELIST<
JTypeList<JHead_t, JTail_t>,B,
C,D,E,F,G,
H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z>
 
  415     typedef JTypeList<JHead_t, typename JTYPELIST<JTail_t,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z>::typelist>  
typelist;
 
  447   struct JTYPELIST<
JNullType,B,
C,D,E,F,G,
H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z>
 
  449     typedef typename JTYPELIST<B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z>::typelist  typelist;
 
  526   template<
class JHead_t, 
class JTail_t>
 
  571   template<
class JObject_t, 
class JHead_t, 
class JTail_t>
 
  594   template<
class JObject_t, 
class T>
 
  610   template<
class JObject_t>
 
JRemove< typename JRemove< JTypeList< JHead_t1, JTail_t1 >, JHead_t2 >::typelist, JTail_t2 >::typelist typelist
 
JTypeAt< JTail_t, index-1, range_check >::value_type value_type
 
JLANG::JTYPELIST< A, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType >::typelist JTypeList< A > typelist
 
Test presence of data type in type list. 
 
JLANG::JTYPELIST< JTypeList< JHead_t, JTail_t >, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z >::typelist JTypeList< JHead_t, typename JTYPELIST< JTail_t, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z >::typelist > typelist
 
Removal of data type from type list. 
 
Auxiliary class for a type holder. 
 
JTypeList< T, JNullType > typelist
 
JTypeList< JHead_t, JTail_t > typelist
 
JTypeList< A, typename JTYPELIST< B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z >::typelist > typelist
 
Auxiliary class for recursive type list generation. 
 
Resolve template class to JTypeList. 
 
Auxiliary class for no type definition. 
 
JRemove< JTypeList< JHead_t1, JTail_t1 >, JHead_t2 >::typelist typelist
 
JTypeList< JHead_t, typename JRemove< JTail_t, T >::typelist > typelist
 
JTypeList< JHead_t, typename JAppend< JTail_t, T >::typelist > typelist
 
JLANG::JTYPELIST< JNullType, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z >::typelist JTYPELIST< B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z >::typelist typelist
 
JObject_t & for_each(JObject_t &object, JType< JTypeList< JHead_t, JTail_t > > typelist)
For each data type method. 
 
JTypeList< JHead_t, JTail_t > typelist
 
JTypeList< JHead_t, JTail_t > typelist
 
Indexing of data type in type list. 
 
JTypeList< T, typename JMultipleType< N-1, T >::typelist > typelist
 
JLANG::JTYPELIST< JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType >::typelist JTypeList typelist
 
JLANG::JTYPELIST< JTypeList< JHead_t, JTail_t >, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType, JNullType >::typelist JTypeList< JHead_t, JTail_t > typelist
 
Extraction of data type from type list.