Back in 2004, the vision and the details of how concepts were supposed to work were different from what eventually ended up in C++20. In particular, in those days a concept is just a generalized type - and each expression had a minimal set of constraints or properties (concept) which is its type. Hence the naming of the implementation field impl::Expr<T>::constraint.
The vocabulary of C++20 concepts are slightly different from those of the early days, so renaming constraint to typing (type assigned through the usual type assignment rules) to avoid confusion.
Back in 2004, the vision and the details of how concepts were supposed to work were different from what eventually ended up in C++20. In particular, in those days a concept is just a generalized type - and each expression had a minimal set of constraints or properties (concept) which is its type. Hence the naming of the implementation field
impl::Expr<T>::constraint
.The vocabulary of C++20 concepts are slightly different from those of the early days, so renaming
constraint
totyping
(type assigned through the usual type assignment rules) to avoid confusion.