自動オブジェクト(スタック上に作成されたオブジェクト)の破棄は、スコープ外になる前に実行されることが保証されていますか?
明確にするために:
#include <iostream>
class A {
public:
A() {
std::cout << "1";
}
~A() {
std::cout << "3";
}
};
void test123() {
A a;
std::cout << "2";
}
を印刷する"2"
必要a
がなくなったため、理論的には、コンパイラは、a
必要がなくなったらすぐに最適化と破棄を試みることができます。
上記の機能を常に印刷することに頼ることはできます123
か?