まず、私はあなたがこの適切な質問叙述イテレータ
見つからない場合は、私は詳細
の下に、私はほとんど常に十分なシンプルかつに対して十分に特異的ではない何かをしたかった履歴書を偶然見つけ謝罪全く新しい機能を保証しますが、手で毎回反復を行うと、乱雑とエラー - 傾向があるので、私は、forループの伝統の構造を保持するために私を有効に断定イテレータを構築しました:
for (/* loop control */)
{
/* operation */
}
Specifically, it allows things like:
for (tree_iterator i (root, SomePredicate); i; ++i)
{
i->SomeOperation();
i->AnotherOperation();
}
「この反復の仕組みはfaですctoredと一緒に保たれ、ループの本体は、操作に専念しています。私はこれが私のオブジェクト階層を扱う際には便利なツールであることを発見しました。それは非常に複雑な反復が抽象化し、すべての適切な部分を明確に表現するために、誰かが叙述イテレータは、それが実装される可能性がどのようにあるか、いずれかのディテールものにいくつかの光を投げることができる
「。ことができますし、それがどのように働く?
お時間をおかげで、謝罪はこれは。項目の反復子をラップイテレータ
は、いつのstd :: 'のようなものがfor_each'、過度に賢いになりたいと思い、誰かのように思えると' BOOST_FOREACH'は 'C++で利用できた98'特にループに基づく範囲ではあまり有用ではありません。 – Chad
誰かが自家製バージョンの 'for(auto && item:container | boost :: adapters :: filtered(predicate)){...}'のように見えます – Praetorian