Namespaces
Variants

std::experimental::ranges:: prev

From cppreference.net
namespace {

constexpr /* unspecified */ prev = /* unspecified */ ;

}
(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 ;

目次

翻訳内容: - "Contents" → "目次" - "Customization point objects" → 翻訳せず(C++専門用語のため) - "Return value" → "戻り値" - "Example" → "例" - "See also" → "関連項目" HTMLタグ、属性、
タグ内のテキストは翻訳せず、元のフォーマットを保持しています。

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

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