为什么使用X而不是X <T>来模板化构造函数和析构函数?

use*_*112 14 c++ templates

在Professional C++(2e页689)中,它说:

仅适用于构造函数和析构函数,您应该使用X而不是 X<T>.

所以:

template<typename T>
class X{
    X();                                  // X
    ~X();                                 // X
    X<T>& operator=(const X<T>& rhs);     // X<T>
};
Run Code Online (Sandbox Code Playgroud)

为什么不X<T>用于构造函数和析构函数声明?

kir*_*ool -1

这里与 X 无关,它只是一个类名。

由于构造函数和析构函数与类共享相同的名称,并且两者都没有返回类型,因此无需指定它。