| // PR c++/99213 | |
| // { dg-do compile { target c++14 } } | |
| template <class T> | |
| struct A { | |
| template <class U> | |
| static auto f() { | |
| struct S1{}; | |
| return S1{}; | |
| } | |
| }; | |
| using type = void; | |
| using type = decltype(A<int>::f<char>()); // { dg-error "A<int>::f<char>\\(\\)::S1" } | |
| template <class T> | |
| struct B { | |
| static auto f() { | |
| struct S2{}; | |
| return S2{}; | |
| } | |
| }; | |
| using type = void; | |
| using type = decltype(B<int>::f()); // { dg-error "B<int>::f\\(\\)::S2" } |