HDK
|
A list of types (not necessarily unique) More...
#include <TypeList.h>
Public Types | |
using | Self = TypeList |
The type of this list. More... | |
template<size_t N> | |
using | Get = typename typelist_internal::TSGetElementImpl< Self, N >::type |
Access a particular element of this type list. If the index is out of range, typelist_internal::NullType is returned. More... | |
using | Front = Get< 0 > |
using | Back = Get< Size-1 > |
template<typename ListT = TypeList<>> | |
using | Unique = typename typelist_internal::TSMakeUniqueImpl< ListT, Ts...>::type |
Remove any duplicate types from this TypeList by rotating the next valid type left (maintains the order of other types). Optionally combine the result with another TypeList. More... | |
template<typename... TypesToAppend> | |
using | Append = typename typelist_internal::TSAppendImpl< Self, TypesToAppend...>::type |
Append types, or the members of another TypeList, to this list. More... | |
template<typename... TypesToRemove> | |
using | Remove = typename typelist_internal::TSRemoveImpl< Self, TypesToRemove...>::type |
Remove all occurrences of one or more types, or the members of another TypeList, from this list. More... | |
using | PopFront = typename typelist_internal::TSRemoveFirstImpl< Self >::type |
Remove the first element of this type list. Has no effect if the type list is already empty. More... | |
using | PopBack = typename typelist_internal::TSRemoveLastImpl< Self >::type |
Remove the last element of this type list. Has no effect if the type list is already empty. More... | |
template<size_t First, size_t Last> | |
using | RemoveByIndex = typename typelist_internal::TSRemoveIndicesImpl< Self, First, Last >::type |
Return a new list with types removed by their location within the list. If First is equal to Last, a single element is removed (if it exists). If First is greater than Last, the list remains unmodified. More... | |
Static Public Member Functions | |
template<typename OpT > | |
static void | foreach (OpT op) |
Invoke a templated, unary functor on a value of each type in this list. More... | |
Static Public Attributes | |
static constexpr size_t | Size = sizeof...(Ts) |
The number of types in the type list. More... | |
template<typename T > | |
static constexpr bool | Contains = typelist_internal::TSHasTypeImpl<Self, T>::Value |
True if this list contains the given type, false otherwise. More... | |
template<typename T > | |
static constexpr int64_t | Index = typelist_internal::TSHasTypeImpl<Self, T>::Index |
Returns the index of the first found element of the given type, -1 if no matching element exists. More... | |
A list of types (not necessarily unique)
Example:
Definition at line 365 of file TypeList.h.
using openvdb::OPENVDB_VERSION_NAME::TypeList< Ts >::Append = typename typelist_internal::TSAppendImpl<Self, TypesToAppend...>::type |
Append types, or the members of another TypeList, to this list.
Example:
Definition at line 440 of file TypeList.h.
using openvdb::OPENVDB_VERSION_NAME::TypeList< Ts >::Back = Get<Size-1> |
Definition at line 378 of file TypeList.h.
using openvdb::OPENVDB_VERSION_NAME::TypeList< Ts >::Front = Get<0> |
Definition at line 377 of file TypeList.h.
using openvdb::OPENVDB_VERSION_NAME::TypeList< Ts >::Get = typename typelist_internal::TSGetElementImpl<Self, N>::type |
Access a particular element of this type list. If the index is out of range, typelist_internal::NullType is returned.
Definition at line 376 of file TypeList.h.
using openvdb::OPENVDB_VERSION_NAME::TypeList< Ts >::PopBack = typename typelist_internal::TSRemoveLastImpl<Self>::type |
Remove the last element of this type list. Has no effect if the type list is already empty.
Example:
Definition at line 483 of file TypeList.h.
using openvdb::OPENVDB_VERSION_NAME::TypeList< Ts >::PopFront = typename typelist_internal::TSRemoveFirstImpl<Self>::type |
Remove the first element of this type list. Has no effect if the type list is already empty.
Example:
Definition at line 468 of file TypeList.h.
using openvdb::OPENVDB_VERSION_NAME::TypeList< Ts >::Remove = typename typelist_internal::TSRemoveImpl<Self, TypesToRemove...>::type |
Remove all occurrences of one or more types, or the members of another TypeList, from this list.
Example:
Definition at line 453 of file TypeList.h.
using openvdb::OPENVDB_VERSION_NAME::TypeList< Ts >::RemoveByIndex = typename typelist_internal::TSRemoveIndicesImpl<Self, First, Last>::type |
Return a new list with types removed by their location within the list. If First is equal to Last, a single element is removed (if it exists). If First is greater than Last, the list remains unmodified.
Example:
Definition at line 500 of file TypeList.h.
using openvdb::OPENVDB_VERSION_NAME::TypeList< Ts >::Self = TypeList |
The type of this list.
Definition at line 368 of file TypeList.h.
using openvdb::OPENVDB_VERSION_NAME::TypeList< Ts >::Unique = typename typelist_internal::TSMakeUniqueImpl<ListT, Ts...>::type |
Remove any duplicate types from this TypeList by rotating the next valid type left (maintains the order of other types). Optionally combine the result with another TypeList.
Example:
Definition at line 424 of file TypeList.h.
|
inlinestatic |
Invoke a templated, unary functor on a value of each type in this list.
Example:
std::ref
to use the same object for each type. Definition at line 523 of file TypeList.h.
|
static |
True if this list contains the given type, false otherwise.
Example:
Definition at line 393 of file TypeList.h.
|
static |
Returns the index of the first found element of the given type, -1 if no matching element exists.
Example:
Definition at line 409 of file TypeList.h.
|
static |
The number of types in the type list.
Definition at line 371 of file TypeList.h.