Datastructures that encode their value in their type. More...
Modules | |
| Bitset | |
Sets of integers represented as extremely long ints, such as __uint<4096>. | |
| Integer Sequences | |
sp::integer_sequence, and related free functions. | |
| Integer Set | |
| A set of integers. | |
| Type Set | |
| A set of types. | |
| Type-encoded String | |
| Strings in the type system. | |
Classes | |
| class | sp::BitfieldMap< KeyBits, Members > |
| An associative container backed by a sorted list of integers. More... | |
| class | sp::DenseIntegerSet< Start, Ints > |
| A compile-time set of integers, backed by a bitset. More... | |
| class | sp::TypeList< Ts > |
| A compile-time list of types, providing all the usual list primitives. More... | |
Typedefs | |
| template<int KeyBits, uint64_t... Members> | |
| using | sp::B64Map = BitfieldMap< KeyBits, sp::uint64_sequence< Members... > > |
| template<int Start, uint64_t... Is> | |
| using | sp::DenseIntSet = sp::DenseIntegerSet< Start, sp::uint64_sequence< Is... > > |
| template<typename T , int > | |
| using | sp::Repeat = T |
| template<typename T , int N> | |
| using | sp::FilledTypeList = decltype(filledTypelistHelper< T >(sp::make_int_sequence< N >{})) |
Create a TypeList of length N with all values set to T More... | |
Functions | |
| template<int KeyBits, typename LHSMembers , typename RHSMembers > | |
| constexpr auto | sp::operator| (BitfieldMap< KeyBits, LHSMembers > &&, BitfieldMap< KeyBits, RHSMembers > &&) |
| template<typename T , int... Is> | |
| constexpr auto | sp::filledTypelistHelper (sp::int_sequence< Is... > &&) |
Datastructures that encode their value in their type.
Such things are sometimes useful for very elaborate type calculations.
| using sp::FilledTypeList = typedef decltype(filledTypelistHelper<T>(sp::make_int_sequence<N>{})) |
Create a TypeList of length N with all values set to T