Title
Alias template specialization vs pack expansion
Status
nad
Section
13.7.8 [temp.alias]
Submitter
Eric Niebler

Created on 2012-07-09.00:00:00 last changed 146 months ago

Messages

Date: 2012-10-15.00:00:00

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.

Date: 2022-11-20.07:54:16

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

  template<typename T> using Int = int;

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

it is not clear whether int is substituted for Int<Ts> 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<T>.

(See also issue 1558.)

History
Date User Action Args
2012-11-03 00:00:00adminsetmessages: + msg4180
2012-11-03 00:00:00adminsetstatus: open -> nad
2012-07-09 00:00:00admincreate