1 // Testcase from P0127R2 2 // { dg-options -std=c++17 } 3 4 template<auto n> struct B { decltype(n) f = n; }; 5 B<5> b1; // OK: template parameter type is int 6 B<'a'> b2; // OK: template parameter type is char 7 B<2.5> b3; // { dg-error "" } template parameter type cannot be double 8 f(B<n>)9template <auto n> void f(B<n>) { } 10 main()11int main() 12 { 13 f(B<42>()); 14 f(B<'a'>()); 15 } 16