Linked-list of types


Detailed Description

Linked-list of compile-time types and supporting compile-time operations.

Author:
H. Carter Edwards <hcedwar@sandia.gov>
'TypeList' templates significantly enhanced from Alexandrescu's "Modern C++ Design" book.


Classes

class  phdmesh::SameType< T1, T2 >
 Member enum { value = ... }; is true if T1 and T2 are the same type. More...
class  phdmesh::TypeList< Value, Tail >
 A link within a linked list of types.

A linked list of types where Tail is required to either terminate the list with TypeListEnd or continue the list with another instantiation of TypeList . More...

class  phdmesh::TypeListLength< ListType >
 Member enum { value = ... }; is the length of the type list. More...
class  phdmesh::TypeListAt< ListType, ordinal >
 Member typedef ... type ; is the type of the member of ListType at location ordinal if ordinal is less than the type list length. More...
class  phdmesh::TypeListIndex< ListType, TestValue, ordinal >
 Member enum { value = ... }; is the location within ListType of occurance I of type TestValue . If this occurance does not exist then value = -1 . More...
class  phdmesh::TypeListCount< ListType, TestValue >
 Member enum { value = ... }; is the number of occurances of TestValue within ListType . More...
class  phdmesh::TypeListMember< ListType, TestValue >
 Member enum { value = ... }; is true if TestValue is a member of ListType . More...
class  phdmesh::TypeListUnique< ListType >
 Member enum { value = ... }; is true if each member of ListType appears exactly once. More...
class  phdmesh::TypeListDisjoint< ListA, ListB >
 Member enum { value = ... }; is true if all members of ListA are not a member ListB . More...
class  phdmesh::TypeListFirst< ListType >
 Member typedef ... type ; is the first member of ListType . More...
class  phdmesh::TypeListLast< ListType >
 Member typedef ... type ; is the last member of ListType . More...
class  phdmesh::TypeListAppend< ListA, T >
 Member typedef ... type ; is defined by appending T to the end of ListA . More...
class  phdmesh::TypeListJoin< ListA, ListB >
 Member typedef ... type ; is defined by joining ListB to the end of ListA . More...
class  phdmesh::TypeListEraseAt< ListType, ordinal >
 Member typedef ... type ; is defined by erasing member at ordinal from ListType . More...
class  phdmesh::MakeTypeList< T00, T01, T02, T03, T04, T05, T06, T07, T08, T09, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45, T46, T47, T48, T49, T50, T51, T52, T53, T54, T55, T56, T57, T58, T59, T60, T61, T62, T63 >
 Member typedef ... type ; is the type list formed from the template arguments. More...


Generated on Tue Jul 13 09:22:43 2010 for phdMesh by  doxygen 1.4.7