template<typename T>concept C =requires(T x){{ x == x }-> std::convertible_to<bool>;
};
template<typename T>requires C<T>// C constrains f1(T) in constraint-expression
T f1(T x){return x; }template<C T>// C, as a type-constraint, constrains f2(T)
T f2(T x){return x; }