[C++ PATCH] Deprecate -ffriend-injection
[official-gcc.git] / gcc / testsuite / g++.dg / concepts / fn3.C
blob6695f2f98a6d5d5ff21a0dab3aebe9898da86de9
1 // { dg-do run }
2 // { dg-options "-std=c++17 -fconcepts" }
4 #include <cassert>
6 // Check partial ordering during overload resolution.
8 template<typename T>
9   concept bool C() { return __is_class(T); }
11 template<typename T>
12   concept bool D() { return C<T>() and __is_empty(T); }
14 struct S1 { } s1;
15 struct S2 { int n; } s2;
17 int called = 0;
19 template<C T> void f1(T x) { called = 1;}
20 template<D T> void f1(T x) { called = 2;}
22 int main() {
23   f1(s1); assert(called == 2);
24   f1(s2); assert(called == 1);