如何获取析构函数的成员函数指针?

时间:2012-06-02 00:56:01

标签: c++ destructor member-function-pointers c++03

假设我有

struct X {
  ~X() {}
};

我在C ++ 03中获取X::~X()的成员函数指针的类型和方式是什么?

我不想实际调用它,只是在SFINAE中使用来确定是否存在给定类型的析构函数。

1 个答案:

答案 0 :(得分:5)

您无法获取析构函数的函数指针或构造函数。尽管如此,类型仍然存在析构函数,并且您无法检测 SFINAE 是否不将private作为访问说明符考虑。

关于调用标量类型的析构函数的主题,标准说 [class.dtor] / 16

  

[注意:显式调用析构函数的表示法可用于任何标量类型名称(5.2.4)。允许这样就可以编写代码而无需知道给定类型是否存在析构函数。例如,

     

typedef int I;

     

我* p;

     

P-I标记::〜I();

     

-end note]