命名空间
变体
操作

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

来自 cppreference.com
 
 
范围库
范围适配器
 
 
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,但调用它总是导致未定义的行为。

[编辑] 示例