generate_my_range
a 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 | ranges::views::transform(my_transform_op);
}
範囲がこれらの操作の値によって取得される場合、コンテナーに左辺値参照を渡すとどうなりますか?ranges::views::all(my_container)
パターンを使用する必要がありますか?