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