正確にはC++/CLIでのお話。
class hoge { private void foo(void) { static int bar; } };
これでclass hogeのオブジェクトのライフサイクルが終了したので、deleteして、新しくhogeをnewすると、foo()の中のbarも初期化されると思っていたorz。変なところで初期化されていないな〜と思って言語仕様を見ると、初期化されないようなことが書いてあった。
結局クラス内スコープに変更したのだけれど、関数内のスコープでよい変数なので、どうも気持ち悪い。