Jpp
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Classes | Namespaces | Functions
JTypeList.hh File Reference
#include "JLang/JNullType.hh"
#include "JLang/JType.hh"

Go to the source code of this file.

Classes

struct  JLANG::JTypeList< JHead_t, JTail_t >
 Type list. More...
 
struct  JLANG::JMultipleType< N, T >
 List of identical types. More...
 
struct  JLANG::JMultipleType< 1, T >
 Terminator class of list of identical types. More...
 
struct  JLANG::JAppend< JHead_t, JTail_t >
 Append to type list. More...
 
struct  JLANG::JAppend< JNullType, JNullType >
 Template specialisation of append to type list. More...
 
struct  JLANG::JAppend< JNullType, T >
 Template specialisation of append to type list. More...
 
struct  JLANG::JAppend< JNullType, JTypeList< JHead_t, JTail_t > >
 Template specialisation of append to type list. More...
 
struct  JLANG::JAppend< JTypeList< JHead_t, JTail_t >, T >
 Template specialisation of append to type list. More...
 
struct  JLANG::JRemove< JTypelist_t, T >
 Removal of data type from type list. More...
 
struct  JLANG::JRemove< JNullType, T >
 Template specialisation of removal of data type from type list. More...
 
struct  JLANG::JRemove< JTypeList< T, JTail_t >, T >
 Template specialisation of removal of data type from type list. More...
 
struct  JLANG::JRemove< JTypeList< JHead_t, JTail_t >, T >
 Template specialisation of removal of data type from type list. More...
 
struct  JLANG::JRemove< JTypeList< JHead_t1, JTail_t1 >, JTypeList< JHead_t2, JTail_t2 > >
 Template specialisation of removal of type list from type list. More...
 
struct  JLANG::JRemove< JTypeList< JHead_t1, JTail_t1 >, JTypeList< JHead_t2, JNullType > >
 Template specialisation of removal of type list from type list. More...
 
struct  JLANG::JLength< JTypeList_t >
 Length of type list. More...
 
struct  JLANG::JLength< JTypeList< JHead_t, JTail_t > >
 Recursive length of type list. More...
 
struct  JLANG::JLength< JNullType >
 Terminator class of length of type list. More...
 
struct  JLANG::JHasType< JTypeList_t, T >
 Test presence of data type in type list. More...
 
struct  JLANG::JHasType< JTypeList< JHead_t, JTail_t >, T >
 Recursive test of presence data type in type list. More...
 
struct  JLANG::JHasType< JTypeList< T, JTail_t >, T >
 Identify presence data type in type list. More...
 
struct  JLANG::JHasType< JNullType, T >
 Termination of recursive test of presence data type in type list. More...
 
struct  JLANG::JHasType< T, T >
 Specialisation of JHasType for single class type. More...
 
struct  JLANG::JResolveTypeList< T >
 Resolve template class to JTypeList. More...
 
struct  JLANG::JResolveTypeList< JTypeList< JHead_t, JTail_t > >
 Resolve JTypeList to JTypeList. More...
 
struct  JLANG::JTypeAt< JTypelist_t, index, range_check >
 Extraction of data type from type list. More...
 
struct  JLANG::JTypeAt< JTypeList< JHead_t, JTail_t >, index, range_check >
 Recursive extraction of data type from type list. More...
 
struct  JLANG::JTypeAt< JTypeList< JHead_t, JTail_t >, 0, range_check >
 Termination of recursive extraction of data type from type list. More...
 
struct  JLANG::JTypeAt< JNullType, index, false >
 Termination of recursive extraction of data type from type list. More...
 
struct  JLANG::JIndexOf< JTypeList_t, T >
 Indexing of data type in type list. More...
 
struct  JLANG::JIndexOf< JTypeList< JHead_t, JTail_t >, T >
 Recursive indexing of data type in type list. More...
 
struct  JLANG::JIndexOf< JTypeList< T, JTail_t >, T >
 Identify indexi of data type in type list. More...
 
struct  JLANG::JIndexOf< JNullType, T >
 Termination of recursive indexing of data type in type list. More...
 
struct  JLANG::JTYPELIST< A, 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 >
 Auxiliary class for recursive type list generation. More...
 
struct  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 >
 Template specialisation for expanding type list. More...
 
struct  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 >
 Template specialisation to skip JNullType. More...
 
struct  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 >
 Template specialisation to terminate recursive type list generation. More...
 
struct  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 >
 Template specialisation for empty type list generation. More...
 
struct  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 >
 Template specialisation to terminate recursive type list generation. More...
 

Namespaces

 JLANG
 Auxiliary classes and methods for language specific functionality.
 
 JPP
 

Functions

template<class JObject_t , class JHead_t , class JTail_t >
JObject_t & JLANG::for_each (JObject_t &object, JType< JTypeList< JHead_t, JTail_t > > typelist)
 For each data type method. More...
 
template<class JObject_t , class T >
JObject_t & JLANG::for_each (JObject_t &object, JType< T > type)
 For each data type method. More...
 
template<class JObject_t >
JObject_t & JLANG::for_each (JObject_t &object, JType< JNullType > type)
 Termination method of for each data type method. More...