pack(3) | pack(3) |
pack - variadic type list
#include <cfl/pack/pack.hpp>
typedef pack <char, short, int> U;
typedef spack <0, 1, 2> V;
Compile-time container for a list of types. Normally, pack
is used for
implementation details, and not intented for the end user of CFL. Operations on
packs include, but are not limited to:
Similar to std::integer_sequence
is spack
, a pack consisting of only
std::integral_constant <size_t, ...>
elements. They have a somewhat special
status in CFL, specifying amongst others deep tuple element access (see
[atK(3)][]).
Compile-time lists of types have been spotted in the wild under other names, but
CFL has chosen the slightly ambiguous name pack
. It refers to what is called a
template parameter pack in the C++ specification. As tuples are used to
implement a function parameter pack in CFL, there is no ambiguity for pack
within CFL.
[pack_element(3)][] [pack_append(3)][] [pack_prepend(3)][] [pack_filter(3)][] [pack_flat(3)][] [pack_join(3)][] [pack_map(3)][] [pack_permute(3)][] [pack_reverse(3)][]