定制点对象 (C++20 起)

来自cppreference.com


解释

名字 cpo 代表一个定制点对象,它是某个字面 semiregular 类类型的 const 函数对象。为阐述目的,以 __cpo_fn 表示它的类型的 cv 无限定版本。

__cpo_fn 的所有实例均相等。在相同实参上调用 __cpo_fn 类型的不同实例的效果是等价的,这与指代该实例的表达式是左值还是右值,以及是否为 const 限定无关(然而不要求 volatile 限定的实例是可调用的)。由此,可以自由地复制 cpo 并且能彼此替代地使用它的副本。

给定类型集合 Args...,如果 std::declval<Args>()... 满足上面对于 cpo 的实参的要求,那么 __cpo_fn 就实现

否则,__cpo_fn 的函数调用运算符不会参与重载决议。

参阅