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
が定義されるすべての翻訳単位において、これは同一のカスタマイゼーションポイントオブジェクトのインスタンスを参照します。(これは、インライン関数や関数テンプレート内で自由に使用でき、
One Definition Rule
に違反しないことを意味します。)
戻り値
高度なイテレータ。
注記
オーバーロード (2) で n を省略した場合、 n が1であるかのように振る舞いますが、オーバーロード (4) で n を省略した場合、事実上 n が無限大であるかのように振る舞い(常に bound まで進みます)。
例
|
このセクションは不完全です
理由: 例がありません |
関連項目
|
(C++11)
|
イテレータをインクリメントする
(関数テンプレート) |
|
指定された距離だけイテレータを進める
(関数テンプレート) |
|
|
イテレータをデクリメントする
(関数テンプレート) |
|
|
イテレータとセンチネル間、または範囲の先頭と終端間の距離を返す
(関数テンプレート) |