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

来自cppreference.com
< cpp‎ | named req


 
 
C++ 具名要求
 

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

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

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

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

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

类似其他定制点对象,令

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

的调用全部等价。

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

注解

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