依赖于依赖类型的非静态数据成员的非限定名称
Are unqualified names of non-static data members with dependent types dependent
C++标准中没有明确定义依赖名称,因此在确定依赖名称方面还有很多不足之处,这让我想到了这个问题:具有依赖类型的非静态数据成员的非限定名称是否相关?例如:
template<typename T>
struct S { T t; };
此处t
的名称是依赖名称吗?类型当然是依赖的,但不清楚名称是否是,因为它始终可以解析为引用成员。
不,t
不是依赖的。 虽然关于扩展依赖名称的定义存在一个悬而未决的问题,但名称依赖性的想法是延迟查找它。(即使没有 ADL,也要考虑查找T::foo
,这可能是函数、函数模板或数据成员(不带template
或typename
(。 这里的情况并非如此;t
(在S
内部的上下文中(会立即解析为类成员。
相关文章:
- 用于访问容器<T>数据成员的正确 API
- 静态数据成员的问题-修复链接错误会导致编译器错误
- 数据成员SFINAE的C++17测试:gcc vs clang
- 派生类是否可以在抽象工厂设计模式中具有数据成员
- 将自由函数绑定为类成员函数
- 如何在c++中定义以struct为数据成员的类中的构造函数
- 静态数据成员模板专用化的实例化点在哪里
- 依赖于依赖类型的非静态数据成员的非限定名称
- | 9 |错误:非静态数据成员'matrix :: row'| 9 |错误:数组绑定不是在']']'令牌|之前的整数常数
- 结构绑定:与公共数据成员(继承的基类)结合
- 绑定数据成员在VS2012中不起作用
- 如何比较类的数据成员的名称而不是它们的值
- 按名称获取指向数据成员的指针
- 可视化 当基类和子类具有相同的对象名称但类型不同时,如何访问子类的数据成员。在C++
- Qt 属性、底层数据成员、绑定和开销
- C++无论如何都可以在不知道名称的情况下访问数据成员
- 为什么数据成员的模板功能仅在符合"this"时才是依赖名称?
- 为什么一个类不能对函数和数据成员具有相同的名称?
- 在非限定id后的静态数据成员定义中使用的名称
- 什么名称查找规则适用于静态 const 数据成员定义中的名称