[temp.constr] (original) (raw)
[Example 1: template<typename> concept C = true;template<typename T, template<typename> concept CC> concept D = CC<T>;template<typename T,template<typename> concept CT,template<typename, template<typename> concept> concept CU> int f() requires CU<T, CT>;int _ = f<int, C, D>();
In this example, the associated constraint of fis a concept-dependent constraint CIwhose expression is the concept-id CU<T, CT> with the mapping.
is the result of substituting D into CI.
We consider the normal form of D<T, CT>, which is CC<T> with the mapping.
By recursion, C is substituted in CC<T> and then normalized to the atomic constraint true, which is satisfied.
— _end example_]