【发布时间】:2012-06-02 00:56:00
【问题描述】:
假设我有
struct X {
~X() {}
};
C++03中X::~X()的成员函数指针是什么类型,如何获取?
我不想真正调用它,只是在 SFINAE 中使用来确定给定类型是否存在析构函数。
【问题讨论】:
-
析构函数总是存在...
-
@OliCharlesworth:但是,作为一个实际功能?当我从堆栈中弹出一个
int时,没有调用int::~int函数。 -
@bitmask:
int不是class,所以它没有析构函数。 -
@bitmask:C++ 标准明确不同意你(有点);根据[class.dtor]节的结尾,以下是有效的:
typedef int I; I* p; p->I::~I();。 -
@Oli:这是一个“伪析构函数调用”,语法是有效的,但它没有调用任何东西。 [expr.pseudo] 说“唯一的效果是在点或箭头之前计算后缀表达式。”
标签: c++ destructor member-function-pointers c++03