Parameter packs
A template or function parameter pack can accept zero, one, or more arguments. The standard does not specify any upper limit for the number of arguments, but in practice, compilers may have some. What the standard does is recommend minimum values for these limits but it does not require any compliance on them. These limits are as follows:
- For a function parameter pack, the maximum number of arguments depends on the limit of arguments for a function call, which is recommended to be at least 256.
- For a template parameter pack, the maximum number of arguments depends on the limit of template parameters, which is recommended to be at least 1,024.
The number of arguments in a parameter pack can be retrieved at compile time with the sizeof…
operator. This operator returns a constexpr
value of the std::size_t
type. Let's see this at work in a couple of examples.
In the first example, the sizeof…
operator is used to implement the end...