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