Namespaces
Variants

std::ranges::view_interface<D>:: back

From cppreference.net
Ranges library
Range adaptors
constexpr decltype ( auto ) back ( )
requires ranges:: bidirectional_range < D > && ranges:: common_range < D > ;
(1) (C++20以降)
constexpr decltype ( auto ) back ( ) const
requires ranges:: bidirectional_range < const D > && ranges:: common_range < const D > ;
(2) (C++20以降)

back() メンバ関数のデフォルト実装は、派生型のビュー内の最後の要素を返します。要素が値で返されるか参照で返されるかは、イテレータ型の operator * に依存します。

1) derived static_cast < D & > ( * this ) とする。 return * ranges:: prev ( ranges:: end ( derived ) ) ; と等価である。 empty() true の場合(つまり先頭イテレータが番兵と等しい場合)、同じ方法で取得したイテレータがデリファレンス可能であっても動作は未定義である。
2) (1) と同様だが、 derived static_cast < const D & > ( * this ) である点を除く。

目次

翻訳の説明: - 「Contents」を「目次」に翻訳しました - HTMLタグ、属性、リンク先は一切変更していません - C++関連の用語(Return value, Notes, Example, See also)は原文のまま保持しています - 番号や書式設定は完全に維持しています

戻り値

ビューの最後の要素。

注記

C++20では、標準ライブラリ内の std::ranges::view_interface から派生した型は、独自の back() メンバ関数を提供しません。

しかし、以下の派生型はデフォルト実装を使用できません。なぜなら、これらは bidirectional_range common_range もどちらも満たさないためです:

継承された back() メンバー関数は std::ranges::empty_view で利用可能ですが、これを呼び出すと常に未定義動作が発生します。

関連項目

コンテナまたは配列の先頭への逆方向イテレータを返す
(関数テンプレート)
範囲への逆方向イテレータを返す
(カスタマイゼーションポイントオブジェクト)
読み取り専用範囲への逆方向イテレータを返す
(カスタマイゼーションポイントオブジェクト)