Spec-Zone.ru › C++

std::reverse_iterator<Iter>::operator=

template< class U > 
reverse_iterator& operator=( const reverse_iterator<U>& other );
(до C++17)
template< class U > 
constexpr reverse_iterator& operator=( const reverse_iterator<U>& other );
(с C++17)

Базовый итератор получает значение базового итератора other, т.е. other.base().

Этот перегруз участвует в разрешении перегрузки только если U не является тем же типом, что и Iter, а также std::convertible_to<const U&, Iter> и std::assignable_from<Iter&, const U&> являются моделями.

(с C++20)

Параметры

other - итератор-адаптер для присваивания

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

*this

Пример

#include <iostream>
#include <iterator>
 
int main()
{
    const int a1[]{0, 1, 2};
    int a2[]{0, 1, 2, 3};
    short a3[]{40, 41, 42};
 
    std::reverse_iterator<const int*> it1{std::crbegin(a1)};
    it1 = std::reverse_iterator<int*>{std::rbegin(a2)};   // OK
//  it1 = std::reverse_iterator<short*>{std::rbegin(a3)}; // compilation error:
                                                          // incompatible pointer types
    std::reverse_iterator<short const*> it2{nullptr};
    it2 = std::rbegin(a3); // OK
//  it2 = std::begin(a3);  // compilation error: no viable overloaded '='
    std::cout << *it2 << '\n';
}

Вывод:

42

Отчёты об ошибках

Следующие отчёты об ошибках, изменяющие поведение, были применены ретроактивно к ранее опубликованным стандартам C++.

DR Применимо к Поведение, как опубликовано Правильное поведение
LWG 280 C++98 можно было создать, но не присвоить, std::reverse_iterator, из
другого std::reverse_iterator с другим типом базового итератора
разрешено и присваивание
LWG 3435 C++20 оператор присваивания преобразования не был ограничен ограничен

См. также

(конструктор)
создаёт новый итератор-адаптер
(публичный член-функция)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/iterator/reverse_iterator/operator%3D

Spec-Zone.ru

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