Dependent types and unexpanded parameter packs
Section [temp.dep.type]
Richard Smith

Created on 2014-10-17.00:00:00 last changed 49 months ago


Date: 2015-10-15.00:00:00

[Moved to DR at the October, 2015 meeting.]

Date: 2015-05-15.00:00:00

Proposed resolution (May, 2015):

Change [temp.dep.type] paragraph 9 as follows:

A type is dependent if it is

  • ...

  • a simple-template-id in which either the template name is a template parameter or any of the template arguments is a dependent type or an expression that is type-dependent or value-dependent or is a pack expansion, or

Date: 2015-05-25.00:00:00

Consider an example like:

  template<typename ...Ts> struct X { X(int); };
  template<typename T> using Y = int;
  template<typename ...Ts> void f() {
    X<Y<Ts>...> x;

The presence of the ellipsis should make the reference to X a dependent type, but there is no rule making it so.

Date User Action Args
2017-02-06 00:00:00adminsetstatus: dr -> cd4
2015-11-10 00:00:00adminsetmessages: + msg6079
2015-11-10 00:00:00adminsetstatus: ready -> dr
2015-05-25 00:00:00adminsetmessages: + msg5465
2015-05-25 00:00:00adminsetstatus: open -> ready
2014-10-17 00:00:00admincreate