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
明示的な宣言をそこに残すのではなく、機械的に書き換えるだけの場合、そうする利点はありますか?
助けてくれてありがとう、ペトル