std::ranges::view_interface<D>::back
ja.cppreference.net より
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* に依存します。
以下と同等です return *ranges::prev(ranges::end(derived));。ここで derived は次の通りです:
1)
static_cast<D&>(*this)2)
static_cast<const D&>(*this)
|
|
(C++26 まで) |
|
|
(C++26 から) |
戻り値
ビューの最後の要素。
注記
C++20では、標準ライブラリ内の
std::ranges::view_interface
から派生した型は、独自の
back()
メンバ関数を提供しません。
しかし、以下の派生型はデフォルト実装を使用できません。なぜなら、これらは
bidirectional_range
も
common_range
もどちらも満たさないためです:
- std::ranges::basic_istream_view
- std::ranges::lazy_split_view
- std::ranges::split_view
- std::ranges::take_while_view
継承された
back()
メンバー関数は
std::ranges::empty_view
で利用可能ですが、これを呼び出すと常に未定義動作が発生します。
例
|
このセクションは不完全です
理由: 例がありません |
関連項目
|
(C++14)
|
コンテナまたは配列の先頭への逆方向イテレータを返す
(関数テンプレート) |
|
(C++20)
|
範囲への逆方向イテレータを返す
(カスタマイゼーションポイントオブジェクト) |
|
(C++20)
|
読み取り専用範囲への逆方向イテレータを返す
(カスタマイゼーションポイントオブジェクト) |