c++: prev declared hidden tmpl friend inst [PR112288]
[official-gcc.git] / gcc / testsuite / g++.dg / cpp2a / concepts-friend16.C
blob18974eeb1728de76cd7b8ffc21e2bad4c9260b46
1 // PR c++/110006
2 // { dg-do compile { target c++20 } }
4 template<typename T>
5 class s;
7 template<typename T>
8 void constraint(s<T> const&, int&);
10 template<typename U, typename T2>
11 U function(s<T2> const x)
12         requires requires (U& u) { constraint(x, u); };
14 template<typename T>
15 class s
17         template<typename U, typename T2>
18         friend U function(s<T2> const x)
19                 requires requires (U& u) { constraint(x, u); };
22 int f(s<int> q)
24         return function<int>(q); // { dg-bogus "ambiguous" }