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>)9 template <auto n> void f(B<n>) { }
10 
main()11 int main()
12 {
13   f(B<42>());
14   f(B<'a'>());
15 }
16