|
|
1
6
你也可以这样做
问题是成员位于基中,这取决于模板参数。正常的非限定查找是在定义点执行的,而不是在实例化点执行的,因此它不搜索依赖基。 |
|
2
6
由于存在以下问题:不合格名称的依赖性如何,或者不合格名称查找对依赖名称的适用性如何: 跟踪分析:确定如何分析语句
如果在模板中遇到依赖名称,则始终假定
不
要命名类型,
除非
适用的名称查找会发现它是一个类型,或者我们在名称前面加上
此名称查找用于确定它是否为类型的操作始终在所有相关名称的模板定义点进行:它将以下分析引导到特定方向。在第二个语句中,我们将分析
实际解析在确定了什么是类型和什么不是类型之后,我们将实际分析模板。不依赖的名称——也就是说,那些没有在依赖的范围中查找的名称,或者那些没有被其他规则显式依赖的名称——在模板中使用时被查找,并且它们的含义不受实例化时可见的任何声明的影响。 那名字 是 依赖项在实例化时被查找,既在模板定义中使用它们,也在模板的实例化位置。这同样适用于依赖于以下条件的非限定名称:
这个
不合格的
如果
这肯定还没找到
标准规定,在查找
|
|
3
2
这是一个常见的问题,但是完全有可能绕过它,无论是函数、类型还是属性。 问题出在模板类和函数的两个阶段评估的实现上。通常,标准要求对模板进行两次评估:
在第一次评估中,模板参数是未知的,因此不可能知道基类将是什么…尤其是如果它包含
通过显式定义范围,您将通过使符号依赖于模板参数,将检查延迟到第二个计算。
使用
我喜欢
|