私は次の愚かなコードを使用しています:
std::vector<wxString> m_redoSteps;
...
m_redoSteps.clear();
Visual Studio 6 または GCC でコンパイルしている場合、m_redoSteps.clear() は正常に動作しますが、Visual Studio 2010 を使用すると、「ベクトル イテレーターに互換性がありません」というアサーションが表示されます (これにより、リリース ビルドでクラッシュが発生します)。
ここで何が間違っているのでしょうか?
--
編集:もう1行のコードを追加:
std::vector<wxString> m_redoSteps;
...
if (!m_redoSteps.empty())
{
// do something in case it is not empty - which isn't in my case
...
}
m_redoSteps.clear(); // first call leads to the assertion...