最近、VS2010 Express C++ の非常に奇妙な動作に遭遇しました。
完璧に動作していた私たちのアプリは、小さなエディタ ウィンドウであるにも関わらず、フル スクリーンにレンダリングされるなど、突然、デバッグ モードで予期しない動作を示しました。
私たちが発見したのは、デバッグモードのコード最適化を「非アクティブ化」(/Od) から「プロジェクトのデフォルト」に切り替えることで、新しい動作を無効にできることでした。
これは特に、コードの再構築が進行中であるためにデバッグがほとんど不可能になっていなければ、特に悪いことではありません。そのため、ブレークポイント、ステップスルー、値の確認は無意味です。デバッガーは、変数の正しい値を理解することさえできなくなりました (これは単に論理的なことです)。
なので、どうしようかかなり迷っています。そもそもなぜ失敗し、なぜデバッグモードで最適化されたプログラムが必要なのですか?
また、おかしなことではありませんが、テンプレート パラメーターを引き渡さないことがコンパイラによって認識されず、一部のコードがサイレントに失敗するという C++ コンパイラのバグが発生しました。