C++

goto でスコープを抜けるとクラスのデストラクタが呼び出されない現象に遭遇

C++

ここ一週間ほど仕事でハマった現象。以下サンプル。 class Foo { public: Foo() { puts("constructor"); } ~Foo() { puts("destructor"); } }; int main(int argc, char *argv[]) { int flag = 0; L0: if (flag++ == 0) goto L1; else goto L2; L1: { Foo fo…