std::ranges::view_interface<D>::front
From cppreference.com
< cpp | ranges | view interface
| constexpr decltype(auto) front() requires ranges::forward_range<D>; |
(1) | (C++20以降) |
| constexpr decltype(auto) front() const requires ranges::forward_range<const D>; |
(2) | (C++20以降) |
派生型ビューの最初の要素を返します。要素が値で返されるか参照で返されるかは、イテレータ型のoperator*に依存します。
1)
derived を static_cast<D&>(*this) とします。 return *ranges::begin(derived); と同等です。 empty() が true の場合(つまり、開始イテレータがセンチネルと等しい場合)、同じ方法で取得されたイテレータが間接参照可能であっても、動作は未定義です。2) (1) と同じですが、
derived は static_cast<const D&>(*this) です。目次 |
[edit] Parameters
(なし)
[edit] Return value
ビューの最初の要素。
[edit] Notes
C++20 では、標準ライブラリの std::ranges::view_interface から派生した型で、独自の front() メンバ関数を提供するものはありません。これらの型のほとんどすべてがデフォルト実装を使用しています。
std::ranges::basic_istream_view は例外として挙げられます。これは forward_range を決して満たさないため、ビューは継承された front() を使用できません。
継承された front() メンバ関数は std::ranges::empty_view で利用可能ですが、それを呼び出すと常に未定義の動作が発生します。
[edit] Example
| このセクションは未完成です 理由: 例がありません |
[edit] See also
| (C++11)(C++14) |
コンテナまたは配列の先頭を指すイテレータを返す (関数テンプレート) |
| (C++20) |
rangeの先頭を指すイテレータを返す (カスタマイゼーションポイントオブジェクト) |
| (C++20) |
読み取り専用rangeの先頭を指すイテレータを返す (カスタマイゼーションポイントオブジェクト) |