这是必要的:
template <typename T>
class A{
T*point;
A<T> someFunction(){} //instead of returning just "A", not "A<T>"
}
Run Code Online (Sandbox Code Playgroud)
将someFunction隐式返回与A正在定义的类相同的类型吗?因为在课外,你只能将这种类型称为A<float>或类似,所以我认为这在课堂上也是必要的.我发现它在没有<>的情况下进行编译,所以如果省略括号是一个安全的习惯,这就太奇怪了.
Ral*_*zky 27
在类定义中省略模板参数是有效且安全的C++.事实上,这是一种很好的做法,因为您可能稍后会使用默认值添加其他模板参数.你可能会忘记更改A<T>到A<T,SomeOtherParameter>并获得奇怪的编译时错误.然后回来A就会做到.
Ker*_* SB 19
你可以说A<T>或者只是A,并且A意思相同A<T>.这是因为14.6.1/1:
与普通(非模板)类一样,类模板具有注入类名(第9节).inject-name-name [...]等同于template-name,后跟包含在其中的类模板的template-parameters
<>.