template<typename T> concept C = requires(T x) { { x == x } -> bool; }; template<typename T> requires C<T> // C constrains f1(T) in constraint-expression T f1(T x) { return x; } template<C T> // C constrains f2(T) as a constrained-parameter T f2(T x) { return x; }— end example