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