1 // { dg-options -std=c++17 } 2 3 #include <typeinfo> 4 5 struct S { int m; static int s; } s; 6 7 template<int* p> class X { }; 8 template<const char *s> class Y {}; 9 template<const std::type_info &> class Z {}; 10 11 X<&s.m> x7; // { dg-error "" } 12 Y<"foo"> y1; // { dg-error "string literal" } 13 Z<typeid(p)> z1; // { dg-error "" } 14 f()15void f() 16 { 17 Y<__func__> y; // { dg-error "" } 18 } 19