shards
Version of the Day
|
Compile-time linked-list of types and operations. More...
Classes | |
class | shards::SameType< T1, T2 > |
Member enum { value = ... }; is true if T1 and T2 are the same type. More... | |
class | shards::TypeList< Value, Tail > |
A link within a linked list of types. More... | |
class | shards::TypeListLength< ListType > |
Member enum { value = ... }; is the length of the type list. More... | |
class | shards::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 | shards::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 | shards::TypeListCount< ListType, TestValue > |
Member enum { value = ... }; is the number of occurances of TestValue within ListType . More... | |
class | shards::TypeListMember< ListType, TestValue > |
Member enum { value = ... }; is true if TestValue is a member of ListType . More... | |
class | shards::TypeListUnique< ListType > |
Member enum { value = ... }; is true if each member of ListType appears exactly once. More... | |
class | shards::TypeListDisjoint< ListA, ListB > |
Member enum { value = ... }; is true if all members of ListA are not a member ListB . More... | |
class | shards::TypeListFirst< ListType > |
Member typedef ... type ; is the first member of ListType . More... | |
class | shards::TypeListLast< ListType > |
Member typedef ... type ; is the last member of ListType . More... | |
class | shards::TypeListAppend< ListA, T > |
Member typedef ... type ; is defined by appending T to the end of ListA . More... | |
class | shards::TypeListJoin< ListA, ListB > |
Member typedef ... type ; is defined by joining ListB to the end of ListA . More... | |
class | shards::TypeListEraseAt< ListType, ordinal > |
Member typedef ... type ; is defined by erasing member at ordinal from ListType . More... | |
class | shards::TypeListClean< ListType > |
Member typedef ... type ; is defined by truncating ListType at the first occurance of TypeListEnd . Used by MakeTypeList to generate a clean type list. More... | |
class | shards::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 a type list constructed from the template arguments. More... | |
Compile-time linked-list of types and operations.
This type list capability was inspired by the type list described in Alexandrescu's "Modern C++ Design" book.