鉴于:
template <typename T>
class C {
C & operator ++ () { ... }
};
Run Code Online (Sandbox Code Playgroud)
为什么/如何C允许声明类型的变量和函数C而不是命名C<T>?在使用许多参数来模拟"自我类型"不方便的模板之前,我还没有真正考虑过它.
我应该知道这有什么怪癖吗?
[n3290: 14.6.1/1]:与普通(非模板)类一样,类模板具有注入类名(第9节).inject-class-name可以用作模板名称或类型名称.当它与template-argument-list一起使用时,作为 模板模板参数的模板参数,或作为友元类模板声明的详细类型说明符中的最终标识符,它引用类模板本身.否则,它等同于template-name,后跟括在其中的类模板的 template-parameters<>.
表面上看,它只是一个方便的功能.
| 归档时间: |
|
| 查看次数: |
404 次 |
| 最近记录: |