std::move_iterator<Iter>::base
iterator_type base() const; | (1) |
(constexpr начиная с C++17) (до 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++.
| Отчёт об ошибке | Применён к | Опубликованное поведение | Правильное поведение |
|---|---|---|---|
| LWG 3391 | C++20 | перегрузка (1) возвращала копию базового итератора | возвращает ссылку |
| LWG 3593 | C++20 | перегрузка (1) не имела спецификатора noexcept | добавлен noexcept |
См. также
| обращается к элементу, на который указывает итератор (открытая функция-член) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/iterator/move_iterator/base