blob: ffa5f2bad945a0fec3bd40106911b0bf5f8db966 [file] [log] [blame]
// PR c++/103852
// { dg-do compile { target c++17 } }
// { dg-options "" }
template <class T> struct b{};
template <class T, class T1 = b<T>>
struct s
{
s(T);
};
s c(100);
template <class T, class T1 = b<T>>
using ss = s<T, T1>; // equivalent under proposed resolution of DR 1286
ss tt(1); // { dg-warning "alias template deduction" "" { target c++17_only } }
template <class T, class T1 = T>
using ss2 = s<T, T1>; // different default arg makes it non-equivalent
ss2 tt2(1); // { dg-error "alias template deduction" "" { target c++17_only } }