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

< cpp‎ | named req

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

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

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

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

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

类似其他定制点对象,令

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

的调用全部等价。

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

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