私は Visual Studio 2008 -> 2010 から移行していますが、ポインターの std::set で検索を評価するときに、コードに奇妙なバグが発生しました。
このバージョンでは、set::iterator が set::const_iterator と同じ型を持つように変更され、標準との互換性がもたらされることを私は知っています。しかし、以前は機能していたこのコード セクションがクラッシュする理由がわかりません。
void checkStop(Stop* stop)
{
set<Stop*> m_mustFindStops;
if (m_mustFindStops.find(stop) != m_mustFindStops.end()) // this line crashes for some reason??
{
// do some stuff
}
}
PS m_mustFindStops は、クラッシュすると空になります。
編集:迅速な返信をありがとう...単純なケースでも再現できません-おそらくセット自体の問題ではありません。ヒープの破損が原因である可能性があると思います-コンパイラを変更すると、同じコードと同じ入力データが突然破損する理由を知っていればよかったのにと思います。