![]() |
1
10
你的问题有点令人困惑。起初我以为你在问
当使用类模板的名称时(
可以省略模板参数列表 用于类模板定义中的类模板名称。例如,复制构造函数可以声明为
而不是
这只是一点句法上的甜头,允许你少打字。 但是,在类模板定义之外,您需要显式地拼出所有模板参数。对于派生类也是如此:
当编译器首先遇到您的模板时,只有它的定义,而且编译器还没有看到任何实例化。编译器不知道在实例化点上模板是否在作用域内有专门化。但是,您可以将模板专门用于
结果是,如果您需要引用
|
![]() |
2
8
如果省略
这与名称查找规则(依赖的基类)有关。 C++ 03〔14.6/8〕说
现在
所以你有两个选择。
|
![]() |
3
2
在编译器读取模板的时候(而不是当它声明模板的时候),它无法分辨出
我认为(检查一下,我不确定)
|
![]() |
4
2
C++标准要求编译器对模板进行“两阶段查找”。也就是说,当解析模板时,他们试图解析第一阶段中的所有非依赖名称(不依赖于模板参数的名称),而当实例化模板时,他们试图解析第二阶段中的所有依赖名称。
如果你没有资格
|
![]() |
5
0
那
或者,在“派生”范围内具有using声明也是一种有效的技术。 |
![]() |
sungjun cho · 函数模板重叠多个匹配项 7 月前 |
![]() |
Amaterastis · 基类接受子类和内部子类的模板参数 8 月前 |
![]() |
111111 · 确定作为模板参数传递的函数的参数类型 8 月前 |
![]() |
Sam · 在LaTeX中将图像添加到预制的投影仪中 8 月前 |
![]() |
user416983 · 模板函数成员作为模板参数 8 月前 |
![]() |
PyOPTProblem · c++如何模板化模板参数的部分实例化? 9 月前 |