For the purpose of determining whether a pack satisfies a rule
regarding entities other than packs, the pack is
considered to be the entity that would result from an instantiation of
the pattern in which it appears.

The instantiation of a pack expansion
that is neither a sizeof... expression
nor a fold-expression
produces a
list of elements
E1,E2,⋯,EN,
where
N is the number of elements in the pack expansion parameters.

Each
Ei is generated by instantiating the pattern and
replacing each pack expansion parameter with its ith element.

Such an element, in the context of the instantiation, is interpreted as
follows:

if the pack is a template parameter pack, the element is a template
parameter ([temp.param]) of the corresponding kind (type or
non-type) designating the ith
corresponding type or value template argument;

When N is zero, the instantiation of the expansion produces an empty list.

Such an instantiation does not alter the syntactic interpretation of the
enclosing construct, even in cases where omitting the list entirely would
otherwise be ill-formed or would result in an ambiguity in the grammar.

In each case,
op is the fold-operator,
N is the number of elements in the pack expansion parameters,
and each Ei is generated by instantiating the pattern
and replacing each pack expansion parameter with its ith element.

For a binary fold-expression,
E is generated
by instantiating the cast-expression
that did not contain an unexpanded pack.