Description
The draft repeatedly uses the terms of art "satisfies/satisfy" and "models/model" without pointing to their definitions, which would be fine, except that these terms of art also do not appear in the Index!
It's hard to search for "model" in the full text because of "memory model" and "object model", but I have at least tracked it down to a non-normative example http://eel.is/c++draft/concepts.equality#8 —
T
fails to meet the implicit requirements ofC
, soT
satisfies but does not modelC
. Since implementations are not required to validate the syntax of implicit requirements, it is unspecified whether an implementation diagnoses as ill-formed a program that requiresC<T>
.
http://eel.is/c++draft/temp.constr.atomic#3 seems to provide a normative definition for satisfy.
To determine if an atomic constraint is satisfied, the parameter mapping and template arguments are first substituted into its expression. If substitution results in an invalid type or expression, the constraint is not satisfied. Otherwise, the lvalue-to-rvalue conversion is performed if necessary, and
E
shall be a constant expression of typebool
. The constraint is satisfied if and only if evaluation ofE
results intrue
.
I have not discovered the normative definition for model.