Namespaces
Variants

std::experimental::ranges:: next

From cppreference.net
namespace {

constexpr /* 未指定 */ next = /* 未指定 */ ;

}
(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 (以先到达者为准),并返回前进后的迭代器。

1) 等价于 ++ i ; return i ;
2) 等价于 ranges:: advance ( i, n ) ; return i ;
3) 等价于 ranges:: advance ( i, bound ) ; return i ;
4) 等价于 ranges:: advance ( i, n, bound ) ; return i ;

目录

定制点对象

名称 ranges::next 表示一个 定制点对象 ,它是一个字面量 Semiregular 类类型(为说明目的记为 NextT )的 函数对象 NextT 的所有实例都是等价的。因此, ranges::next 可以被自由复制,其副本可以互换使用。

给定一组类型 Args... ,若 std:: declval < Args > ( ) ... 满足上述对 ranges::next 参数的要求,则 NextT 将满足 ranges :: Invocable < const NextT, Args... > 。否则, NextT 的函数调用运算符均不参与重载决议。

在每个定义了 ranges::next 的翻译单元中,它都指向同一个定制点对象实例。(这意味着它可以自由用于内联函数和函数模板等场景,而不会违反 单一定义规则 。)

返回值

高级迭代器。

注释

尽管为重载 (2) 省略 n 时行为等同于将 n 设为1,但为重载 (4) 省略 n 时实际行为等同于将 n 设为无穷大(始终前进至 bound )。

示例

参见

(C++11)
递增迭代器
(函数模板)
按给定距离推进迭代器
(函数模板)
递减迭代器
(函数模板)
返回迭代器与哨位之间的距离,或范围起始与末尾之间的距离
(函数模板)