| // PR c++/48530 | |
| // { dg-do compile { target c++11 } } | |
| template<class T, | |
| class = decltype(T{}) | |
| > | |
| char f(int); | |
| template<class> | |
| char (&f(...))[2]; | |
| struct DelDtor { | |
| ~DelDtor() = delete; | |
| }; | |
| static_assert(sizeof(f<DelDtor[2]>(0)) != 1, "Error"); | |
| struct A | |
| { | |
| static DelDtor *p; | |
| }; | |
| template<class T, | |
| class = decltype(delete T::p, (T*)0) | |
| > | |
| char g(int); | |
| template<class> | |
| char (&g(...))[2]; | |
| static_assert(sizeof(g<DelDtor>(0)) != 1, "Error"); |