Spec-Zone.ru › C++

std::move_iterator<Iter>::base

(1)
iterator_type base() const;
(с C++11)
(до C++17)
constexpr iterator_type base() const;
(с C++17)
(до C++20)
constexpr const iterator_type& base() const& noexcept;
(с C++20)
constexpr iterator_type base() &&;
(2) (с C++20)

Возвращает базовый итератор.

1) Копирует возвращаемое значение из базового итератора. (до C++20)
1) Возвращает ссылку на базовый итератор. (с C++20)
2) Перемещает возвращаемое значение из базового итератора.

Параметры

(нет)

Возвращаемое значение

1) Копия базового итератора. (до C++20)
1) Ссылка на базовый итератор. (с C++20)
2) Итератор, перемещённый из базового итератора.

Исключения

Может выбросить исключение, определённое реализацией.

Пример

#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 постоянная версия base возвращает копию базового итератора возвращает ссылку
LWG 3593 C++20 постоянная версия base возвращает ссылку, но может не быть noexcept сделано noexcept

См. также

operator*operator->
(C++11)(C++11)(устарело в C++20)
доступ к элементу, на который указывает указатель
(общедоступный член-функция)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/iterator/move_iterator/base

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API