| // { dg-do compile { target c++14 } } |
| // { dg-additional-options "-fconcepts" } |
| |
| struct A { |
| void f(auto x); |
| }; |
| |
| void A::f(auto x) {} // injects a new list |
| |
| template <typename T> |
| struct B { |
| void f(auto x); |
| }; |
| |
| template <typename T> |
| void B<T>::f(auto x) {} // injects a new list |
| |
| struct C { |
| template <int N> |
| void f(auto x); |
| }; |
| |
| template <int N> |
| void C::f(auto x) {} // extends existing inner list |
| |
| template <typename T> |
| struct D |
| { |
| template <int N> |
| void f(auto x); |
| }; |
| |
| template <typename T> |
| template <int N> |
| void D<T>::f(auto x) {} // extends existing inner list |