std::experimental::ranges:: next
|
Определено в заголовке
<experimental/ranges/iterator>
|
||
|
namespace
{
constexpr
/* unspecified */
next
=
/* unspecified */
;
|
(ranges TS)
(объект точки кастомизации) |
|
|
Сигнатура вызова
|
||
|
template
<
Iterator I
>
constexpr I next ( I i ) ; |
(1) | |
|
template
<
Iterator I
>
constexpr I next ( I i, ranges :: difference_type_t < I > n ) ; |
(2) | |
|
template
<
Iterator I, Sentinel
<
I
>
S
>
constexpr I next ( I i, S bound ) ; |
(3) | |
|
template
<
Iterator I, Sentinel
<
I
>
S
>
constexpr I next ( I i, ranges :: difference_type_t < I > n, S bound ) ; |
(4) | |
Перемещает итератор i n раз, или до достижения bound в зависимости от того, что наступит раньше, и возвращает перемещённый итератор.
Содержание |
Объекты точек кастомизации
Имя
ranges::next
обозначает
объект точки кастомизации
, который является
функциональным объектом
типа
литерального
Semiregular
класса (обозначаемого, для целей демонстрации, как
NextT
). Все экземпляры
NextT
равны. Таким образом,
ranges::next
может свободно копироваться, и его копии могут использоваться взаимозаменяемо.
Для заданного набора типов
Args...
, если
std::
declval
<
Args
>
(
)
...
удовлетворяют требованиям к аргументам для
ranges::next
выше,
NextT
будет удовлетворять
ranges
::
Invocable
<
const
NextT, Args...
>
. В противном случае ни один оператор вызова функции
NextT
не участвует в разрешении перегрузки.
В каждой единице трансляции, где определен
ranges::next
, он ссылается на тот же экземпляр объекта точки настройки. (Это означает, что его можно свободно использовать в таких конструкциях, как встроенные функции и шаблоны функций без нарушения
правила одного определения
.)
Возвращаемое значение
Продвинутый итератор.
Примечания
Хотя опускание n для перегрузки (2) ведёт себя так, как если бы n было равно 1, опускание n для перегрузки (4) фактически ведёт себя так, как если бы n было бесконечностью (всегда продвигается до bound ).
Пример
|
Этот раздел не завершён
Причина: отсутствует пример |
Смотрите также
|
(C++11)
|
увеличивает итератор
(шаблон функции) |
|
перемещает итератор на заданное расстояние
(шаблон функции) |
|
|
уменьшает итератор
(шаблон функции) |
|
|
возвращает расстояние между итератором и стражем, или между началом и концом диапазона
(шаблон функции) |