タグ付けされた質問 「range-v3」

1
パイプライブラリ機能に範囲を使用できないのはなぜですか?
Jonathan Boccara(Fluent C ++の作者)がpipesというライブラリを作成しました。 リポジトリのメインページにあるこの「パイピング」は、見た目は同じですが、範囲の使用とは異なります。遅延プルではなく、積極的なプッシュに基づいています。しかし、範囲ライブラリを使用してさまざまな「パイプ」操作を実行することはできないと述べられています。例えば: unzip-圧縮された入力(基本的に一連のkタプル)を取り、kの独立した独立した出力を生成します。 fork-コンテナー/範囲の複数の(独立した)コピーを生成します。 なぜそうなるのか、原理的にはよくわかりません。(もちろん、終了イテレータ/センチネルを取得できない範囲を除いて。)

1
C ++ 20でビューを使用してコンテナーを構築できますか?
範囲は、C ++ 20標準バージョンでC ++に導入されます。 私の質問:任意の範囲で(既存の)標準ライブラリコンテナを構築できますか?そしてさらに重要なのは、範囲ビューで? たとえば、これは: #include <vector> #include <iostream> #include <ranges> int main() { auto sq = [](int x) { return x * x; }; std::vector<int> vec { 3, 4, 5 }; std::vector<int> squares { std::ranges::views::transform(vec, sq) }; for(auto i : squares) { std::cout << i << ' '; …
10 c++  c++20  range-v3 

2
一時的にパイプされた範囲操作に戻すことはできますか?
generate_my_rangea range(特にis regular)をモデル化するクラスがあるとします。次のコードは正しいですか: auto generate_my_range(int some_param) { auto my_transform_op = [](const auto& x){ return do_sth(x); }; return my_custom_rng_gen(some_param) | ranges::views::transform(my_transform_op); } auto cells = generate_my_range(10) | ranges::to<std::vector>; my_custom_rng_gen(some_param)(最初の)パイプ演算子によって値が取得されますか、またはgenerate_my_rangeスコープを離れると、ダングリング参照がありますか? 関数呼び出しと同じranges::views::transform(my_custom_rng_gen(some_param),my_transform_op)でしょうか? 左辺値参照を使用した場合、それは正しいでしょうか?例えば: auto generate_my_range(int some_param) { auto my_transform_op = [](const auto& x){ return do_sth(x); }; auto tmp_ref = my_custom_rng_gen(some_param); return tmp_ref | …
9 c++  range-v3 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.