decltype や std::remove_reference を使用して (delete 演算子なしで) デストラクタを呼び出すことは可能ですか? 次に例を示します。
#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;
}