次のコードを使用して、C++ でデストラクタを試していました。
#include <iostream>
struct temp
{
~temp() { std::cout << "Hello!" << std::endl; }
};
int main()
{
temp t;
t.~temp();
}
「こんにちは!」とわかります。2回印刷されています。デストラクタを呼び出してオブジェクトを解放するべきではなく、スコープ外になったときにデストラクタを再度呼び出すべきではありませんか? それとも何か他の概念がありますか?
(実際にこれを行うつもりはありません。ここで何が起こっているのかを理解しようとしているだけです。)