Dev*_*wal 4 c++ templates generic-programming injected-class-name
考虑下面的示例:
template <typename T>
class SomeClass {
// rest of the definition ...
SomeClass<T>& function1() {
// ...
return *this;
}
SomeClass& function2() {
// ...
return *this;
}
}
Run Code Online (Sandbox Code Playgroud)
上面两个函数的返回值之间有区别吗?如果不是,应该选择哪一个?
function1和之间没有区别function2。SomeClass在没有定义的模板参数的情况下键入SomeClass是使用Injectiond-class-name的实例:
注入的类名是所述类范围内的类的名称。
在类模板中,injected-class-name可以用作引用当前模板的模板名称,也可以用作引用当前实例的类名称。
是否在另一个上使用是主观的,但是注入的类名更易于维护,因为如果您更改模板参数的数量,则不必手动更改SomeClass。