如何获取析构函数的成员函数的指针?(How do I get the member function

2019-06-25 02:31发布

假设我有

struct X {
  ~X() {}
};

什么类型以及如何得到的成员函数指针X::~X()在C + + 03?

我不想实际调用它,只是在SFINAE使用的数字,如果存在给定类型的析构函数。

Answer 1:

你不能得到一个析构函数,也不是一个构造函数的函数指针。 然而析构函数总是存在一个类型,你可以,如果它不能检测private用的访问说明不被认为SFINAE。

在调用这将是一个标量类型的析构函数的主体,标准说[class.dtor] / 16:

[注:析构函数的显式调用符号可用于任何标量类型名称(5.2.4)。 允许这使得它可以编写代码,而不必知道,如果一个析构函数存在一个给定的类型。 例如,

的typedef INT I;

我* P;

P->我::〜I();

末端注]



文章来源: How do I get the member function pointer of a destructor?