// 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'>()); | |
} |