返回级裁判:从给定一个类模板类模板函数
template <typename T>
class my_class
{
public:
my_class& test1() { return *this; }
// OR
my_class<T>& test2() { return *this; }
}
是否有返回类型的test1
和test2
之间有什么区别?
返回级裁判:从给定一个类模板类模板函数
template <typename T>
class my_class
{
public:
my_class& test1() { return *this; }
// OR
my_class<T>& test2() { return *this; }
}
是否有返回类型的test1
和test2
之间有什么区别?
返回类型
test1
和test2
之间是否有区别?
没有。有一个概念叫做injected-class-name。在my_class<T>
的正文中,名称my_class
指的是完整类型my_class<T>
。
我们甚至可以借此得出的逻辑结论,并添加:
my_class::my_class::my_class::my_class& test4() { return *this; }
否,范围my_class<T>
,my_class
是my_class<T>
的缩写。
没有,没有任何区别 – wasthishelpful
号(土豆) –