constexpr auto begin()
requires (!simple-view <V>); // (1) C++23
constexpr auto begin() const
requires range<const V>; // (2) C++23
概要
view
の先頭要素を指すイテレータを取得する。
戻り値
メンバ変数base_
として保持しているRangeへのポインタがあるとして、以下を返す:
return std::move_iterator(ranges::begin(*base_));
例
#include <iostream>
#include <vector>
#include <ranges>
int main() {
std::vector<std::string> v = {"one", "two", "three"};
auto r = std::ranges::as_rvalue_view(v);
auto it = r.begin();
auto end = r.end();
while (it != end) {
std::string x = *it; // ここでムーブされる
std::cout << x << std::endl;
++it;
}
}
出力
one
two
three
バージョン
言語
- C++23
処理系
- Clang: 17 ✅
- GCC: 13 ✅
- ICC: ?
- Visual C++: 2022 Update 4 ✅