次のコードスニペットがあります
fscanf( fSettings, "%s", szLine );
bool x = separateBool ( szLine );
gSettings.useBE = x;
szLine
が含まれていますuseBE=1
。x
に設定されtrue
、VS2010 Pro ウォッチはそれを認識します。gSettings.useBE
ただし、最後の行でvalue が割り当てられた後でgSettings.useBE
も、の値は false として表示されます。これがどのように起こっているのかわかりません。VS2010 SP1をインストール。ご意見をお寄せいただきありがとうございます。
編集:separateBoolは次の関数です:
inline
bool separateBool( const char * szStr )
{
std::vector<std::string> res = split(szStr, '=');
if ( res.size() < 2 )
; /* error */
return (str2int( res[1] ) == 1 );
};
「アルゴリズム」の玩具版
bool a = false;
bool b = false;
b = separateBool ( szLine );
a = b;
a = separateBool ( szLine );
すべてを正しく行います。