Namespaces
Variants

std::ranges::view_interface<D>:: operator[]

From cppreference.net
Ranges library
Range adaptors
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 [ ] を再利用します。

1) derived static_cast < D & > ( * this ) と定義する。 return ranges:: begin ( derived ) [ n ] ; と同等。
2) (1) と同様ですが、 derived static_cast < const D & > ( * this ) である点が異なります。

目次

パラメータ

n - 返される要素の位置

戻り値

先頭イテレータからのオフセット n にある要素。

注記

C++20では、標準ライブラリ内の std::ranges::view_interface から派生した型は、独自の operator [ ] メンバ関数を提供しません。

しかし、以下の派生型はデフォルト実装を使用できません。なぜなら、これらは決して random_access_range を満たさないためです:

注:指定された要件に基づき、HTMLタグ・属性、
タグ内のテキスト、C++固有の用語は翻訳せず、元のフォーマットを保持しています。表示されているテキストは全てC++標準ライブラリの範囲アダプタ名であり、翻訳対象外のため原文のまま維持されています。

継承された operator [ ] メンバー関数は std::ranges::empty_view で利用可能ですが、これを呼び出すと常に未定義動作が発生します。