4

これはコンパイル エラーでしょうか? 私の環境は次のとおりです。

  • Win7 プロ (64 ビット)
  • VS2012 (アップデート 3)

以下の小さなコンソールプログラムをコンパイルします。x64 ビットのリリース/デバッグ ビルドでは問題なく動作します。x32 デバッグ ビルドも問題なく動作します。ただし、x32 リリース ビルドでは「BUG!」が表示されます。

「プログラム全体の最適化」を無効にすると、問題が解決します。

何か案は?

-

#include <string>
#include <iostream>


int main()
{
    std::string const buffer = "hello, world";
    std::string::size_type pos = 0;
    std::string::size_type previous_pos;


    while (pos != std::string::npos)
    {
        previous_pos = ++pos;
        pos = buffer.find('w', pos);
    } 


    if (previous_pos == std::string::npos)
    {
        std::cout << "BUG!!"<< std::endl;
    }

    return 0;
}
4

1 に答える 1