[temp.constr.concept]

[Example 1: template<typename> concept C = true; template<typename T, template<typename> concept CC> concept D = CC<T>; template<typename U, template<typename> concept CT, template<typename, template<typename> concept> concept CU> int f() requires CU<U, CT>; int i = f<int, C, D>();

In this example, the associated constraints of f consist of a concept-dependent constraint whose expression is the concept-id CU<U, CT> with the mapping .

The result of substituting D into this expression is D<U, CT>.

We consider the normal form of the resulting concept-id, which is CC<T> with the mapping .

By recursion, C is substituted into CC<T>, and the result is normalized to the atomic constraint true, which is satisfied.

— end example]