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.