1 // PR c++/48530 2 // { dg-options -std=c++0x } 3 4 template<class T, 5 class = decltype(T{}) 6 > 7 char f(int); 8 9 template<class> 10 char (&f(...))[2]; 11 12 struct DelDtor { 13 ~DelDtor() = delete; 14 }; 15 16 static_assert(sizeof(f<DelDtor[2]>(0)) != 1, "Error"); 17 18 struct A 19 { 20 static DelDtor *p; 21 }; 22 23 template<class T, 24 class = decltype(delete T::p, (T*)0) 25 > 26 char g(int); 27 28 template<class> 29 char (&g(...))[2]; 30 31 static_assert(sizeof(g<DelDtor>(0)) != 1, "Error"); 32