BOOST_FOREACHを範囲ベースのforループに置き換えるプロセスを経験したことがありますか? 機械的に行う場合(つまり、コードの詳細な調査を行わない場合) に落とし穴はありますか?
背景: Microsoft VC++ 10 (Visual Studio 2010) でコンパイルされた約 250K 行のソースがあります。コードは、boost ライブラリの BOOST_FOREACH も使用します。を使用した範囲ベースのforループも実装する VC++ 11 (Visual Studio 2012 RC) を試していautoます。
これまでのところ、要素が外で宣言されている状況に遭遇しましたBOOST_FOREACH(括弧内に宣言はありません):
BOOST_FOREACH (element, container) {
    ...
}
...そして、 のelement後のループで値が設定されることが期待されていましたbreak。同様の問題を覚えていますか?
BOOST_FOREACHに宣言が含まれている場合、明示的な型を で置き換えることを選択しますかauto? BOOST_FOREACH明示的な宣言をそこに残すのではなく、機械的に書き換えるだけの場合、そうする利点はありますか?
助けてくれてありがとう、ペトル