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

继承的 operator [ ] 成员函数可用于 std::ranges::empty_view ,但调用该函数始终会导致未定义行为。

示例