C++ 具名要求:范围适配器对象 (RangeAdaptorObject) (C++20 起)

来自cppreference.com
< cpp‎ | named req
 
 
C++ 具名要求
基础
类型属性
库所属
容器
容器元素
(C++11)

迭代器
流 I/O
格式化
(C++20)
随机数
(C++11)    
并发
(C++11)
(C++11)
范围
RangeAdaptorObject
(C++20)
其他
(C++11)


 

范围适配器对象是接收 viewable_range 作为其首参数并返回 view 的定制点对象。一些范围适配器对象是一元的,即它们接收一个 viewable_range 作为其仅有的参数。其他范围适配器对象接收一个 viewable_range 和其他尾随参数。

如果范围适配器对象仅仅接受一个参数,则他同时也是 范围适配器闭包对象 (RangeAdaptorClosureObject)

若范围适配器接收多于一个参数,则它亦支持部分应用:令

  • a 为范围适配器对象,而
  • args... 为参数(通常适合作为尾随参数),

则表达式 a(args...) 拥有下列属性:

类似其他定制点对象,令

  • a 为任何范围适配器类型的 cv 无限定版本的对象,
  • args... 任何满足 aoperator() 的约束参数组,

的调用全部等价。

每个这些表达式的结果对象是一个 view 对象或 范围适配器闭包对象 (RangeAdaptorClosureObject)

注:范围适配器类型的 volatile 限定或 const-volatile 限定版本不支持 operator() 。数组和函数在绑定时转换成指针。