名前空間
変種
操作

std::experimental::ranges::prev

From cppreference.com
< cpp‎ | experimental‎ | ranges
 
 
 
 
イテレータライブラリ
イテレータのコンセプト
間接呼び出し可能コンセプト
                                                  
                                                  
                                                  
共通アルゴリズム要件
                                                  
Concept utilities
Iterator utilities and operations
prev
Iterator traits
イテレータアダプタ
ストリームイテレータ
 
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)

イテレータ in 回デクリメントします。または 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 の引数要件を満たす場合、PrevTranges::Invocable<const PrevT, Args...> を満たします。そうでない場合、PrevT の関数呼び出し演算子はオーバーロード解決に参加しません。

ranges::prev が定義されているすべての翻訳単位において、カスタマイズポイントオブジェクトの同じインスタンスを参照します。(これは、インライン関数や関数テンプレートなどで、One Definition Rule に違反することなく自由に利用できることを意味します。)

[編集] 戻り値

デクリメントされたイテレータ。

[編集]

[編集] 関連項目

(C++11)
イテレータをデクリメントする
(関数テンプレート) [編集]
イテレータを指定された距離だけ進める
(function template) [編集]
イテレータをインクリメントする
(function template) [編集]
イテレータとセンチネルの間の距離、または範囲の開始と終了の間の距離を返します。
(function template) [編集]
English 日本語 中文(简体) 中文(繁體)