|
libtcspc C++ API
Streaming TCSPC and time tag data processing
|
Compile-time representation of a list of types.
In libtcspc, specializations of type_list are frequently used to specify sets of events to be processed in a certain way.
We use a "list" of types, rather than a "set", because there is no way in C++ to implement a type that has set semantics (because there is no total order of types available at compile time; Cf. ISO C++ proposal P2830R3). Therefore, the order of the types Ts is significant for the purpose of type identity (std::is_same) of two type_list specializations. However, we provide metafunctions to perform set operations on type_list specializations, such as tcspc::type_list_is_equal_set.
Ts within your project. Using equivalent but differently ordered types can lead to code bloat.