Namespaces
Variants

operator+,-(ranges::enumerate_view::iterator)

С ru.cppreference.net
 
 
Библиотека диапазонов
Адаптеры диапазонов
 
 
friend constexpr /* iterator */
    operator+( const /* iterator */& i, difference_type n )
    requires ranges::random_access_range</* Base */>;
(1) (начиная с C++23)
friend constexpr /* iterator */
    operator+( difference_type n, const /* iterator */& i )
    requires ranges::random_access_range</* Base */>;
(2) (начиная с C++23)
friend constexpr /* iterator */
    operator-( const /* iterator */& i, difference_type n )
    requires ranges::random_access_range</* Base */>;
(3) (начиная с C++23)
friend constexpr difference_type
    operator-( const /* iterator */& i, const /* iterator */& j ) noexcept;
(4) (начиная с C++23)

Выполняет арифметику iterator или вычисляет расстояние.

pos_ - это базовый индекс, а Base - это (возможно, квалифицированный const) тип базового представления.

Эквивалентно:

1) auto temp = i; temp += n; return temp;
2) return i + n;
3) auto temp = i; temp -= n; return temp;
4) return i.pos_ - j.pos_;

Эти функции не видны при обычном unqualified или qualified lookup, и могут быть найдены только при argument-dependent lookup, когда enumerate_view::iterator<Const> является связанным классом аргументов.

Параметры

i, j - итераторы
n - позиция относительно текущего местоположения

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

1,2) Инкрементированный итератор.
3) Декрементированный итератор.
4) Расстояние между заданными итераторами.

Пример

Отчеты о дефектах

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

DR Applied to Behavior as published Correct behavior
LWG 3912 C++23 перегрузка (4) не была noexcept она является noexcept

Смотрите также

перемещает вперед или назад базовый итератор
(public member function)