std::ranges::view_interface<D>:: back
|
||||||||||||||||||||||
| Range primitives | |||||||
|
|||||||
| Range concepts | |||||||||||||||||||
|
|||||||||||||||||||
| Range factories | |||||||||
|
|||||||||
| Range adaptors | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||
| Helper items | |||||||||||||||||
|
|
||||||||||||||||
| Member functions | ||||
|
(C++23)
|
||||
|
(C++23)
|
||||
|
back
|
||||
|
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
*
に依存します。
derived
を
static_cast
<
D
&
>
(
*
this
)
とする。
return
*
ranges::
prev
(
ranges::
end
(
derived
)
)
;
と等価である。
empty()
が
true
の場合(つまり先頭イテレータが番兵と等しい場合)、同じ方法で取得したイテレータがデリファレンス可能であっても動作は未定義である。
derived
が
static_cast
<
const
D
&
>
(
*
this
)
である点を除く。
目次 |
戻り値
ビューの最後の要素。
注記
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)
|
読み取り専用範囲への逆方向イテレータを返す
(カスタマイゼーションポイントオブジェクト) |