Namespaces
Variants

std::experimental::ranges:: next

From cppreference.net
ヘッダーで定義 <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 に達するかのいずれか早い方まで進め、進められたイテレータを返します。

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 ;

目次

翻訳内容: - "Contents" → "目次" - "Customization point objects" → 翻訳せず(C++専門用語のため) - "Return value" → "戻り値" - "Notes" → "注記" - "Example" → "例" - "See also" → "関連項目" HTMLタグ、属性、数値はすべてそのまま保持し、C++専門用語は翻訳していません。

カスタマイゼーションポイントオブジェクト

名前 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)
イテレータをインクリメントする
(関数テンプレート)
指定された距離だけイテレータを進める
(関数テンプレート)
イテレータをデクリメントする
(関数テンプレート)
イテレータとセンチネル間、または範囲の先頭と終端間の距離を返す
(関数テンプレート)