自定義點物件 (C++20 起)
來自 cppreference.com
[編輯] 說明
名稱 cpo
指代一個自定義點物件,它是一個 const 函式物件,其型別為 字面量 semiregular
類型別。為了說明目的,其 cv-unqualified 版本型別表示為 __cpo_fn
。
所有 __cpo_fn
的例項都相等。無論表示例項的表示式是左值還是右值,以及是否具有 const 限定(但是,volatile 限定的例項不要求可呼叫),在相同引數上呼叫不同 __cpo_fn
型別例項的效果是等價的。因此,cpo
可以自由複製,並且其副本可以互換使用。
給定一組型別 Args...
,如果 std::declval<Args>()... 滿足上面 cpo
的引數要求,則 __cpo_fn
遵循
- std::invocable<__cpo_fn, Args...>,
- std::invocable<const __cpo_fn, Args...>,
- std::invocable<__cpo_fn&, Args...>,以及
- std::invocable<const __cpo_fn&, Args...>.
否則,__cpo_fn
的任何函式呼叫運算子都不參與過載決議。
[編輯] 參見
- RangeAdaptorObject (RAO)
- RangeAdaptorClosureObject (RACO)