operator+,- (ranges::elements_view::iterator)
С ru.cppreference.net
friend constexpr /*iterator*/ operator+( const /*iterator*/& i, difference_type n )
requires ranges::random_access_range<Base>;
|
(1) | (начиная с C++20) |
friend constexpr /*iterator*/ operator+( difference_type n, const /*iterator*/& i )
requires ranges::random_access_range<Base>;
|
(2) | (начиная с C++20) |
friend constexpr /*iterator*/ operator-( const /*iterator*/& i, difference_type n )
requires ranges::random_access_range<Base>;
|
(3) | (начиная с C++20) |
friend constexpr difference_type operator-( const /*iterator*/& x,
const /*iterator*/& y )
requires std::sized_sentinel_for<ranges::iterator_t<Base>, ranges::iterator_t<Base>>;
|
(4) | (начиная с C++20) |
1,2) Возвращает итератор
i, увеличенный на n.3) Возвращает итератор
i, уменьшенный на n.4) Возвращает расстояние между
x и y.Эти функции не видны при обычном неквалифицированном или квалифицированном поиске, и могут быть найдены только при поиске, зависящем от аргументов, когда elements_view::iterator<Const> является ассоциированным классом аргументов.
Параметры
| i, x, y | - | итераторы |
| n | - | позиция относительно текущего местоположения |
Возвращаемое значение
1,2)
[
&
]
{
auto
j
=
i
;
j
+
=
n
;
return
j
;
}
(
)
3)
[
&
]
{
auto
j
=
i
;
j
-
=
n
;
return
j
;
}
(
)
4)
x.
base
(
)
-
y.
base
(
)
Пример
|
Этот раздел не завершён
Причина: отсутствует пример |
Отчёты о дефектах
Следующие отчеты об изменениях в поведении, содержащие описания дефектов, были применены ретроактивно к ранее опубликованным стандартам C++.
| DR | Applied to | Behavior as published | Correct behavior |
|---|---|---|---|
| LWG 3483 | C++20 |
elements_view::iterator
's difference is overconstrained
|
requirement is relaxed |