4

を使用して独自の range-v3ビューを作成する方法を理解しましたが、 in-place-mutating を使用できるように独自のコンテナーview-facadeを作成したいと思います。actions

MyContainer<ItemType> list = createList();
list |= ranges::actions::transform(&someMappingFunction);

残念ながら、a のような単純なヘルパーはないようです。container-facadeまた、私の C++ スキルはまだ range-v3 ソースを読むだけで理解できるほど狂っていません。コンテナはどのインターフェースを実装する必要がありますか、または何から派生させる必要がありますか?

ヒントをありがとう!

4

1 に答える 1

1

range-v3 の観点からはbegin、変更可能なインスタンスが const インスタンスとは異なる型を返す場合、または が である場合、Range はコンテナis_view<T>::valueですfalse。多くの場合、アクションには追加の機能が必要です。たとえば、多くの場合、コンテナの位置にcont.insert(pos, val)値を挿入する必要があります。範囲 [ , )で示される要素を削除する必要があるものもあります。ドキュメントの不足についてお詫び申し上げます。HTH。valcontposcont.erase(from, to)fromto

于 2016-02-22T16:42:00.933 に答える