C++ named requirements: CustomizationPointObject (since C++20)
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
定制点对象
是字面量
semiregular
类类型的无状态
函数对象
。
相同类类型的所有定制点对象都是等价的。无论表示实例的表达式是左值还是右值、是否带有const限定符,调用该类型的不同实例对相同参数产生的效果都是等价的。但带有volatile限定符的实例不要求必须可调用。因此,定制点对象可以自由复制,且副本可以互换使用。
令
Fn
为定制点对象类型,
Args...
为一组类型,若
std::
declval
<
Args
>
(
)
...
满足对
Fn
参数的调用要求,则
Fn
满足
- std:: invocable < Fn, Args... > ,
- std:: invocable < const Fn, Args... > ,
- std:: invocable < Fn & , Args... > , 以及
-
std::
invocable
<
const
Fn
&
, Args...
>
。
否则,
Fn
的函数调用运算符不会参与重载决议。