名稱空間
變體
操作

C++ 命名要求: RangeAdaptorClosureObject (C++20 起)

來自 cppreference.com
 
 
C++ 命名要求
基本
型別屬性
全庫範圍




Container(容器)
容器元素
迭代器 (Iterator)
流 I/O
格式化器
(C++20)
隨機數
併發
(C++11)
Ranges
RangeAdaptorClosureObject(範圍介面卡閉包物件)
(C++20)
多維檢視
其他

 

範圍介面卡閉包物件函式物件,可透過管道運算子呼叫:如果 C 是一個範圍介面卡閉包物件,而 R 是一個 range,則以下兩個表示式是等價的

C(R)
R | C

兩個範圍介面卡閉包物件可以透過 operator| 連結起來,以生成另一個範圍介面卡閉包物件:如果 CD 是範圍介面卡閉包物件,則 C | D 會生成一個具有以下屬性的範圍介面卡閉包物件 E

  • E 儲存了 CD 的副本,分別從 std::forward<decltype((C))>(C)std::forward<decltype((D))>(D) 直接非列表初始化。如果此類初始化無效,則 C | D 也無效。
  • cd 是儲存的副本(具有與 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| 連結兩個範圍介面卡閉包物件的結果。

[編輯] 另請參閱

用於定義範圍介面卡閉包物件的輔助基類模板
(類模板) [編輯]