| // Testcase from P0127R2 | |
| // { dg-do compile { target c++17 } } | |
| template<auto n> struct B { decltype(n) f = n; }; | |
| B<5> b1; // OK: template parameter type is int | |
| B<'a'> b2; // OK: template parameter type is char | |
| B<2.5> b3; // { dg-error "" "" { target c++17_down } } template parameter type cannot be double | |
| template <auto n> void f(B<n>) { } | |
| int main() | |
| { | |
| f(B<42>()); | |
| f(B<'a'>()); | |
| } |