13 Templates [temp]

13.8 Name resolution [temp.res]

13.8.3 Dependent names [temp.dep]

13.8.3.5 Dependent template arguments [temp.dep.temp]

A type template-argument is dependent if the type it specifies is dependent.
A constant template-argument is dependent if its type is dependent or the constant expression it specifies is value-dependent.
Furthermore, a constant template-argument is dependent if the corresponding constant template parameter is of reference or pointer type and the template-argument designates or points to a member of the current instantiation or a member of a dependent type.
A template argument is also dependent if it is a pack expansion.
A template template parameter is dependent if it names a template parameter or its terminal name is dependent.