as_rvalue_view()
requires default_initializable<V> = default; // (1) C++23
constexpr explicit
as_rvalue_view(V base); // (2) C++23
概要
as_rvalue_view
オブジェクトを構築する。
- (1) :
base
をムーブして*this
に保持する
効果
- (1) : メンバ変数
base_
をstd::move(base)
で初期化する
備考
- ここで、
V
はstd::ranges::ref_view
であり、元となるRangeはview
に変換されて保持される。
例
#include <iostream>
#include <vector>
#include <algorithm>
#include <ranges>
int main() {
std::vector<int> v = {1, 2, 3};
std::ranges::for_each(
std::views::as_rvalue(v),
[](int x) { std::cout << x << ' '; }
);
}
出力
1 2 3
バージョン
言語
- C++23
処理系
- Clang: 17 ✅
- GCC: 13 ✅
- ICC: ?
- Visual C++: 2022 Update 4 ✅