[temp.concept] (original) (raw)

13 Templates [temp]

13.7 Template declarations [temp.decls]

13.7.8 Concept definitions [temp.concept]

A concept-definitiondeclares a concept.

Its identifier becomes a concept-namereferring to that concept within its scope.

[ Example

:

template concept C = requires(T x) { { x == x } -> std::convertible_to; };

template requires C // C constrains f1(T) in constraint-expression T f1(T x) { return x; }

template // C, as a type-constraint, constrains f2(T) T f2(T x) { return x; }

end example

]

The first declared template parameter of a concept definition is itsprototype parameter.