是否可以使用decltype和\或std :: remove_reference调用析构函数(不使用运算符删除)?这是一个例子:
#include <iostream>
#include <type_traits>
using namespace std;
class Test
{
public:
Test() {}
virtual ~Test() {}
};
int main()
{
Test *ptr;
ptr->~Test(); // works
ptr->~decltype(*ptr)(); // doesn't work
ptr->~std::remove_reference<decltype(*ptr)>::type(); // doesn't work
return 0;
}
Run Code Online (Sandbox Code Playgroud)