1 // { dg-do compile { target c++17 } }
2 // { dg-options "-fconcepts" }
4 // distilled from <concepts>, via header units
6 template<typename _ArgTypes>
9 template<typename... _Args>
10 concept invocable = is_invocable<_Args...>::value;
12 template<typename _Is>
13 requires invocable<_Is>
16 template<typename _Is>
17 requires invocable<_Is>
18 class BUG {}; // { dg-bogus "different constraints" }
20 template<int> struct is_invocable_NT;
23 concept invocable_NT = is_invocable_NT<Ints...>::value;
26 requires invocable_NT<_Is>
30 requires invocable_NT<_Is>