連結のために既存のビューを使用したいと思います。コード内:2つの既存の範囲を連結する方法::ビュー?
auto rng = view::empty<vector<int>>();
for(int i{0}; i < 5; ++i)
{
vector<int> const & v{foo()}; // returns a reference
rng |= view::concat(v); // doesn't compile - error: no viable overloaded '|='
};
言い換えれば、実行時まで数が分からない複数のベクトルのビューを作成するにはどうしたらいいですか?
どのようなタイプの 'ですnewRange'関数と 'foo()'関数を見ることができますか?また 'v'とは何ですか? – Galik
@Galikコードを更新しました。 'foo()'関数はconst参照を返しますが、私の質問には関係ありません。 – nikitablack
これは、範囲では非常に難しいと思います。異なる要素を持つn個の範囲を考慮する。今度は、範囲全体のbegin()とend()は、最初のend()とend()の開始点を指し、その間ではk番目の範囲の終わりにあるかどうかを追跡する必要があります。 (k + 1)番目に移動する。コンパイル時に '' view :: concat''を実行すると、非常に多くの機械が必要になります。 – skgbanga