[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_]