非常に奇妙なケースが私に起こりました.デバッガを使用しているときに、ブール変数の値true
が0
このバグを修正するにはどうすればよいですか? これは環境バグなので、コード例を公開しても意味がありません。(隠された迷惑なメモリ管理のバグが原因ではないでしょうか?) そして、このコンテキストで、私の環境が適切に構成されていないことに気付くと驚かれることを指摘したいと思います (私はこのプロジェクトに取り組んでいます環境で 1 年以上)。
これまでのところ:
- プロジェクトのプロパティで、コンパイラがコードに最適化を行わないことを再確認しました。
- ビジュアルスタジオを再度開いて、プロジェクトをクリーンアップして再構築しようとしました
- Webで解決策を検索しました(何も見つかりませんでした)。Visual Studio 2010 を使用しており、プログラミング言語は C++ です。
コードシェアのお申し込みについて:
申し訳ありませんが、コードを公開することはできません (私の上司は、Web で実行されるのを見て喜んでいないでしょう)...問題の考えられる理由についていくつかのアイデアを提供できれば、それは素晴らしいことです.そして、これらの理由が本当に問題を引き起こしているかどうかを確認するために、自分でコードの手がかりを探します。ただし、明確にするために、私が苦労しているいくつかのコード行を次に示します。
bool dir = getNode(location)->getNext()->getDirection(); //dir is displayed as "true" in the debbuger
int toPush = (dir == 1) ? 1 : 0; //"toPush" is displayed as "0" in the debbugger
cout<<dir<<endl; //both output 0.
cout<<(dir == true)<<endl;
リクエストに応じて、スクリーンショットを添付します。画面の右端で「true」として表示される「dir」の値と、右側のプログラム出力の値が 0 で終わることに注意してください (「cout<< dir」コマンドに対応)。