CWG Issue 1520 (original) (raw)

This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21 Core Issues List revision 118e. See http://www.open-std.org/jtc1/sc22/wg21/ for the official list.

2025-11-05


1520. Alias template specialization vs pack expansion

Section: 13.7.8 [temp.alias]Status: NADSubmitter: Eric NieblerDate: 2012-07-09

The relative order of template parameter pack expansion and alias template substitution is not clear in the current wording. For example, in

template using Int = int;

template<typename ...Ts> struct S { typedef S<Int...> other; };

it is not clear whether int is substituted forInt first, leaving the ellipsis with no parameter pack to expand, or whether the pack expansion is to be applied first, producing a list of specializations of Int.

(See also issue 1558.)

Rationale (October, 2012):

The latter interpretation (a list of specializations) is the correct interpretation; a parameter pack can't be substituted into anything, including an alias template specialization. CWG felt that this is clear enough in the current wording.