// PR c++/79501 // { dg-do compile { target c++17 } } // A variant of class-deduction78.C where List and its deduction guides are // defined at class scope. using size_t = decltype(sizeof(42)); struct A { template struct List { T head; List tail; }; template struct List {}; template List(T) -> List; template List(T, List) -> List; }; int main() { using type = decltype(A::List{0, A::List{1, A::List{2}}}); using type = A::List; }