| // { dg-do compile { target c++20 } } | |
| // Test basic expression requirements | |
| // req13.C | |
| template<class T, class...Args> | |
| concept Constructible = | |
| requires(Args&&...args) { | |
| T {((Args&&)(args))...}; | |
| new T{((Args&&)(args))...}; | |
| }; | |
| template<typename T> | |
| requires Constructible<T> | |
| struct A { }; | |
| A<int> a; | |
| // req19.C | |
| struct B | |
| { | |
| template <class T> | |
| void f(T t) requires requires (T tt) { tt; } | |
| { } | |
| }; | |
| int main() | |
| { | |
| B().f(42); | |
| } |