C++ 命名要求: RangeAdaptorClosureObject (C++20 起)
來自 cppreference.com
範圍介面卡閉包物件是 函式物件,可透過管道運算子呼叫:如果 C 是一個範圍介面卡閉包物件,而 R 是一個 range
,則以下兩個表示式是等價的
C(R) R | C
兩個範圍介面卡閉包物件可以透過 operator| 連結起來,以生成另一個範圍介面卡閉包物件:如果 C 和 D 是範圍介面卡閉包物件,則 C | D 會生成一個具有以下屬性的範圍介面卡閉包物件 E
- E 儲存了 C 和 D 的副本,分別從 std::forward<decltype((C))>(C) 和 std::forward<decltype((D))>(D) 直接非列表初始化。如果此類初始化無效,則 C | D 也無效。
- 設 c 和 d 是儲存的副本(具有與 E 相同的 constness 和值類別),R 是一個
range
物件,則以下表達式是等價的
d(c(R)) R | c | d E(R) R | E // R | (C | D)
注意:範圍介面卡物件閉包型別的 volatile-qualified 或 const-volatile-qualified 版本不支援 operator()。
其型別與以下物件之一相同的物件(忽略 cv 限定符)是範圍介面卡閉包物件:
- 一元範圍介面卡物件,
|
(C++23 起) |
- 透過範圍介面卡物件繫結尾隨引數的結果,以及
- 透過 operator| 連結兩個範圍介面卡閉包物件的結果。
[編輯] 另請參閱
用於定義範圍介面卡閉包物件的輔助基類模板 (類模板) |