スタジオジブリ(STUDIO GHIBLI Inc)、創価学会インターナショナル(Souka Gakkai International)、どっちもSGIなんだよね(
VC++2003→VC++2005へ移行したところ、
Listのパフォーマンスがかなり落ちるということが分かりました。
最初はListのメモリ配置の局所性が悪くなってキャッシュしづらくなったのかなー、
と思ったのですが、Vectorも遅いということが判明。
そこで Checked Iterators は?という情報をゲット。
イテレータでアクセスするときに配列境界をチェックしてくれる機能だ。
これを使えばJavaみたいに配列範囲外アクセス時に実行時例外を投げることも可能。
これがVS2005で導入(もっと前からあるのかも)されて、デフォルトONなのだ。
_SECURE_SCL を0でdefineしてOFFにするとパフォーマンス改善。
#★↑注:速度とのトレードオフで安全さを捨てるので注意★
イテレータで回すサンプルコードでは数倍から10倍以上変わったとのこと。
その他にも浮動小数点演算のデフォルトオプションがより正確な方へ変わっていたり