(root)/
gcc-13.2.0/
gcc/
testsuite/
g++.dg/
cpp1z/
class-deduction-alias1.C
// 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 } }