1 2 3 4 5 6 7 8 9 10 11 12 13
// { dg-do compile { target c++17 } } template<class T, class D = int> struct S { T t; }; template<class U> S(U) -> S<typename U::type>; struct A { using type = short; operator type(); }; S s{A()}; // OK S x(A()); // { dg-error "return type" }