Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
假设我有
struct X { ~X() {} };
X::~X()C++03 中的成员函数指针是什么类型以及如何获取?
X::~X()
我不想实际调用它,只需在 SFINAE 中使用来确定给定类型是否存在析构函数。
您无法获取析构函数或构造函数的函数指针。尽管如此,一个类型总是存在析构函数,并且您无法检测到它的privatewith as 访问说明符是否不被SFINAE考虑。
private
关于调用标量类型的析构函数的主题,标准说[class.dtor]/16:
[注意:显式调用析构函数的符号可用于任何标量类型名称(5.2.4)。允许这样做可以编写代码,而不必知道给定类型是否存在析构函数。例如, typedef int I; 我* p; p->I::~I(); ——尾注]
[注意:显式调用析构函数的符号可用于任何标量类型名称(5.2.4)。允许这样做可以编写代码,而不必知道给定类型是否存在析构函数。例如,
typedef int I;
我* p;
p->I::~I();
——尾注]