std::ranges::view_interface<D>::operator[]
From cppreference.com
< cpp | ranges | view interface
| template<ranges::random_access_range R = D> constexpr decltype(auto) operator[]( ranges::range_difference_t<R> n ); |
(1) | (C++20以降) |
| template<ranges::random_access_range R = const D> constexpr decltype(auto) operator[]( ranges::range_difference_t<R> n ) const; |
(2) | (C++20以降) |
メンバー関数 operator[] のデフォルト実装は、イテレータ型の operator[] を再利用して、指定されたオフセット位置の要素を取得します。
2) (1) と同じですが、
derived は static_cast<const D&>(*this) です。目次 |
[編集] パラメータ
| n | - | 返す要素の位置 |
[編集] 戻り値
先頭イテレータからのオフセット n にある要素。
[編集] 注釈
C++20 では、標準ライブラリで std::ranges::view_interface から派生した型で、独自の operator[] メンバー関数を提供するものはありません。
しかし、以下の派生型は、random_access_range を満たすことがないため、デフォルトの実装を使用できません。
- std::ranges::basic_istream_view
- std::ranges::filter_view
- std::ranges::join_view
- std::ranges::lazy_split_view
- std::ranges::split_view
継承された operator[] メンバー関数は std::ranges::empty_view で利用可能ですが、それを呼び出すと常に未定義の動作となります。
[編集] 例
| このセクションは未完成です 理由: 例がありません |