名前空間
変種
操作

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

From cppreference.com
 
 
Rangesライブラリ
Rangeアダプタ
 
 
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) derivedstatic_cast<D&>(*this) とします。 return ranges::begin(derived)[n]; と等価です。
2) (1) と同じですが、derivedstatic_cast<const D&>(*this) です。

目次

[編集] パラメータ

n - 返す要素の位置

[編集] 戻り値

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

[編集] 注釈

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

しかし、以下の派生型は、random_access_range を満たすことがないため、デフォルトの実装を使用できません。

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

[編集]

English 日本語 中文(简体) 中文(繁體)