std::move_iterator<Iter>::base
ja.cppreference.net より
iterator_type base() const;
|
(1) | (C++17以上でconstexpr) (C++20未満) |
constexpr const iterator_type& base() const& noexcept;
|
(C++20以上) | |
constexpr iterator_type base() &&;
|
(2) | (C++20以上) |
基となるイテレータを返す。
1) 基となるイテレータのコピー(C++20未満)または参照(C++20以上) を返す。
2) 基となるイテレータからムーブ構築されたイテレータを返す。
戻り値
1)
current
2)
std
::
move
(
current
)
例
このコードを実行
#include <algorithm> #include <iostream> #include <iterator> #include <vector> int main() { std::vector<int> v{0, 1, 2, 3, 4}; std::move_iterator<std::vector<int>::reverse_iterator> m1{v.rbegin()}, m2{v.rend()}; std::copy(m1.base(), m2.base(), std::ostream_iterator<int>(std::cout, " ")); std::cout << '\n'; }
出力:
4 3 2 1 0
不具合報告
以下の動作変更の欠陥報告書は、以前に公開されたC++規格に対して遡及的に適用されました。
| DR | 適用対象 | 公開時の動作 | 正しい動作 |
|---|---|---|---|
| LWG 3391 | C++20 | オーバーロード ( 1 ) は基盤イテレータのコピーを返していた | 参照を返す |
| LWG 3593 | C++20 | オーバーロード ( 1 ) はnoexceptではなかった | noexceptに変更 |
関連項目
|
指し示す要素にアクセスする
(公開メンバ関数) |