------- Comment #16 from pinskia at gcc dot gnu dot org 2005-11-05 03:18 ------- Just for later reference the defintion of what a dependent name is slightly different now after the DR: A name is a member of an unknown specialization if the name is a qualified-id in which the nested-name-specifier names a dependent type that is not the current instantiation.
A type is dependent if it is a template parameter, a member of an unknown specialization, a nested class that is a member of the current instantiation, a cv-qualified type where the cv-unqualified type is dependent, a compound type constructed from any dependent type, an array type constructed from any dependent type or whose size is specified by a constant expression that is value-dependent, or a template-id in which either the template name is a template parameter or any of the template arguments is a dependent type or an expression that is type-dependent or value-dependent. ----- This is obvious the "a nested class that is a member of the current instantiation" case. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24680