std::ranges::view_interface<D>::back
From cppreference.com
< cpp | ranges | view interface
| 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以降) |
派生型 `D` のビューの最後の要素を返します。要素が値で返されるか参照で返されるかは、イテレータ型の operator* に依存します。
1)
derived を static_cast<D&>(*this) とします。 return *ranges::prev(ranges::end(derived)); と同等です。 empty() が true の場合(つまり、開始イテレータがセンチネルと等しい場合)、同じ方法で取得されたイテレータが間接参照可能であっても、未定義の動作となります。2) (1) と同じですが、
derived は static_cast<const D&>(*this) です。目次 |
[edit] Parameters
(なし)
[edit] Return value
ビューの最後の要素。
[edit] Notes
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 で利用可能ですが、それに呼び出しを行うと常に未定義の動作となります。
[edit] Example
| このセクションは未完成です 理由: 例がありません |
[edit] See also
| (C++14) |
コンテナまたは配列の先頭を指す逆順イテレータを返す (function template) |
| (C++20) |
rangeへの逆イテレータを返す (カスタマイゼーションポイントオブジェクト) |
| (C++20) |
読み取り専用rangeへの逆イテレータを返す (カスタマイゼーションポイントオブジェクト) |