Issue2265

Title 2265. Delayed pack expansion and member redeclarations
Status drafting Section 17.8.1 [temp.inst]
Submitter Hubert Tong

Created on 2016-05-11.00:00:00 by admin, last changed by admin.

Messages
msg6200 (view) Date: 2018-03-15.00:00:00

Notes from the March, 2018 meeting:

CWG felt that ill-formed, no diagnostic required was the correct approach.

msg5899 (view) Date: 2018-04-11.00:00:00

It is not clear how to handle parameter packs that are expanded during instantiation in parallel with those that are not yet concrete. In particular, does the following example require a diagnostic?

  template<typename ...T> struct Tuple; 
  template<class T, class U> struct Outer; 
  template<class ...T, class ...U> 
  struct Outer<Tuple<T ...>, Tuple<U ...> > { 
    template<class X, class Y> struct Inner; 
    template<class ...Y> struct Inner<Tuple<T, Y> ...> { }; 
    template<class ...Y> struct Inner<Tuple<U, Y> ...> { }; 
  }; 
  Outer<Tuple<int, void>, Tuple<int, void> > outer; 
History
Date User Action Args
2018-04-11 00:00:00adminsetstatus: open -> drafting
2018-04-11 00:00:00adminsetmessages: + msg6200
2018-02-27 00:00:00adminsetsection: 14.7.1 [temp.inst] -> 17.8.1 [temp.inst]
2016-05-11 00:00:00admincreate