std::ranges::range

来自cppreference.com
< cpp‎ | ranges
 
 
范围库
范围访问
范围转换器
(C++23)
范围原语



悬垂迭代器处理
范围概念
视图

范围工厂
适配器
范围生成器
范围适配器对象
范围适配器闭包对象
辅助项
 
在标头 <ranges> 定义
template< class T >

concept range = requires(T& t) {
  ranges::begin(t); // 对向前迭代器保持相等性
  ranges::end  (t);

};
(C++20 起)

range 概念定义允许通过指代元素范围的迭代器和哨位,在其元素上迭代的类型。

语义要求

给定满足 decltype((E))T 的表达式 ET 实现 range 仅若:

注意:在上述定义中,要求的表达式 ranges::begin(std::forward<T>(t))ranges::end(std::forward<T>(t)) 不要求隐式表达式变种