131
|
1 // Out-of-line generic member function definitions.
|
|
2 // { dg-do compile { target c++14 } }
|
|
3 // { dg-additional-options "-fconcepts" }
|
|
4
|
|
5 struct A {
|
|
6 void f(auto x);
|
|
7 };
|
|
8
|
|
9 void A::f(auto x) {} // injects a new list
|
|
10
|
|
11 template <typename T>
|
|
12 struct B {
|
|
13 void f(auto x);
|
|
14 };
|
|
15
|
|
16 template <typename T>
|
|
17 void B<T>::f(auto x) {} // injects a new list
|
|
18
|
|
19 struct C {
|
|
20 template <int N>
|
|
21 void f(auto x);
|
|
22 };
|
|
23
|
|
24 template <int N>
|
|
25 void C::f(auto x) {} // extends existing inner list
|
|
26
|
|
27 template <typename T>
|
|
28 struct D
|
|
29 {
|
|
30 template <int N>
|
|
31 void f(auto x);
|
|
32 };
|
|
33
|
|
34 template <typename T>
|
|
35 template <int N>
|
|
36 void D<T>::f(auto x) {} // extends existing inner list
|