Title
Declaration matching via alias templates
Status
dup
Section
13.7.7.2 [temp.over.link]
Submitter
Richard Smith

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

Messages

Date: 2015-05-15.00:00:00

Rationale (May, 2015):

This issue is a duplicate os issue 1979.

Date: 2022-11-20.07:54:16

Consider the following example:

  template<typename ...T> struct X { void f(); static int n; };
  template<typename T, typename U> using A = T;
  template<typename ...T> void X<A<T, decltype(sizeof(T))>...>::f() {}
  template<typename ...T> void X<A<T, decltype(sizeof(T))>...>::n = 0;
  void g() { X<void>().f(); X<void>::n = 1; }

Should this be valid? The best answer would seem to be to produce an error during instantiation, and that appears to be consistent with the current Standard wording, but there is implementation divergence.

See also issue 2021.

History
Date User Action Args
2015-05-25 00:00:00adminsetmessages: + msg5965
2015-05-25 00:00:00adminsetstatus: open -> dup
2014-10-17 00:00:00admincreate