* doc/invoke.texi: Document -std=c++17 and -std=gnu++17 and document
[official-gcc.git] / gcc / testsuite / g++.dg / concepts / fn1.C
blob800a0d36f0b948b3a30a25cf9c6420f7f8791ef9
1 // { dg-options "-std=c++17 -fconcepts" }
3 template<typename T>
4   concept bool C() { return __is_class(T); }
6 struct S { } s;
8 template<typename T>
9   requires C<T>()
10     void f(T x) { }
12 // Calls are valid when arguments are dependent,
13 template<typename T>
14   void g(T x) { f(x); }
16 // Calls are checked when arguments are non-dependent.
17 template<typename T>
18   void h(T x) {
19     f(s);
20   }
22 int main() {
23   f(s);
24   g(s);