依赖于依赖类型的非静态数据成员的非限定名称

Are unqualified names of non-static data members with dependent types dependent

本文关键字:定名称 数据成员 静态 依赖 依赖于 类型      更新时间:2023-10-16

C++标准中没有明确定义依赖名称,因此在确定依赖名称方面还有很多不足之处,这让我想到了这个问题:具有依赖类型的非静态数据成员的非限定名称是否相关?例如:

template<typename T>
struct S { T t; };

此处t的名称是依赖名称吗?类型当然是依赖的,但不清楚名称是否是,因为它始终可以解析为引用成员。

不,t不是依赖的。 虽然关于扩展依赖名称的定义存在一个悬而未决的问题,但名称依赖性的想法是延迟查找它。(即使没有 ADL,也要考虑查找T::foo,这可能是函数、函数模板或数据成员(不带templatetypename(。 这里的情况并非如此;t(在S内部的上下文中(会立即解析为类成员。