std::experimental::ranges::prev
From cppreference.com
< cpp | experimental | ranges
| Defined in header <experimental/ranges/iterator> |
||
| namespace { constexpr /* 未指定 */ prev = /* 未指定 */; |
(ranges TS) (カスタマイズポイントオブジェクト) |
|
| 呼び出しシグネチャ |
||
| template< Iterator I > constexpr I prev( I i ); |
(1) | |
| template< Iterator I > constexpr I prev( I i, ranges::difference_type_t<I> n ); |
(2) | |
| template< Iterator I > constexpr I prev( I i, ranges::difference_type_t<I> n, I bound ); |
(3) | |
イテレータ i を n 回デクリメントします。または bound に到達するまでデクリメントします(どちらか早い方)。デクリメントされたイテレータを返します。
1)
--i; return i; と同等です。2)
ranges::advance(i, -n); return i; と同等です。3)
ranges::advance(i, -n, bound); return i; と同等です。目次 |
[編集] カスタマイズポイントオブジェクト
ranges::prev という名前は、*カスタマイズポイントオブジェクト* を表します。これは、リテラルな Semiregular クラス型(説明のため PrevT と表記)の 関数オブジェクトです。PrevT のすべてのインスタンスは等価です。したがって、ranges::prev は自由にコピーでき、そのコピーは互換性があります。
型 Args... のセットが与えられた場合、std::declval<Args>()... が上記の ranges::prev の引数要件を満たす場合、PrevT は ranges::Invocable<const PrevT, Args...> を満たします。そうでない場合、PrevT の関数呼び出し演算子はオーバーロード解決に参加しません。
ranges::prev が定義されているすべての翻訳単位において、カスタマイズポイントオブジェクトの同じインスタンスを参照します。(これは、インライン関数や関数テンプレートなどで、One Definition Rule に違反することなく自由に利用できることを意味します。)
[編集] 戻り値
デクリメントされたイテレータ。
[編集] 例
| このセクションは未完成です 理由: 例がありません |
[編集] 関連項目
| (C++11) |
イテレータをデクリメントする (関数テンプレート) |
| イテレータを指定された距離だけ進める (function template) | |
| イテレータをインクリメントする (function template) | |
| イテレータとセンチネルの間の距離、または範囲の開始と終了の間の距離を返します。 (function template) |