pack(3) pack(3)

NAME

pack - variadic type list

SYNOPSIS

#include <cfl/pack/pack.hpp>

typedef pack <char, short, int> U;
typedef spack <0, 1, 2> V;

DESCRIPTION

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)][]).

NOTES

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.

SEE ALSO

[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)][]