名稱空間
變體
操作

C++ 命名要求: Callable

來自 cppreference.com
 
 
C++ 命名要求
基本
型別屬性
全庫範圍
可呼叫 (Callable)




Container(容器)
容器元素
迭代器 (Iterator)
流 I/O
格式化器
隨機數
併發
範圍 (Ranges)
多維檢視
其他

 

可呼叫 (Callable) 型別是一種可以對其執行 INVOKEINVOKE<R> 操作的型別(例如,由 std::functionstd::bindstd::thread::thread 使用)。

INVOKE 可以使用庫函式 std::invoke 顯式執行。

(C++17 起)

INVOKE<R> 可以使用庫函式 std::invoke_r 顯式執行。

(C++23 起)

目錄

[編輯] 要求

型別 T 滿足 Callable 如果

給定

  • f,型別為 T 的物件,
  • ArgTypes,合適的引數型別列表,
  • R,合適的返回型別。

以下表達式必須有效

表示式 要求
INVOKE<R>(f, std::declval<ArgTypes>()...) 該表示式在未求值上下文中是良構的。

[編輯] 注意

資料成員指標Callable,即使沒有函式呼叫發生。

[編輯] 標準庫

此外,以下標準庫工具接受任何 Callable 型別(而不僅僅是 FunctionObject

(C++11)
任何可複製構造的可呼叫物件的包裝器
(類模板) [編輯]
任何支援給定呼叫簽名中限定符的可呼叫物件的僅移動包裝器
(類模板) [編輯]
任何可複製構造的可呼叫物件的包裝器,支援給定呼叫簽名中的限定符
(類模板) [編輯]
任何可呼叫物件的非擁有包裝器
(類模板) [編輯]
(C++11)
將一個或多個引數繫結到函式物件
(函式模板) [編輯]
(C++20)(C++23)
按順序將可變數量的引數繫結到函式物件
(函式模板) [編輯]
可複製構造 (CopyConstructible)可複製賦值 (CopyAssignable) 的引用包裝器
(類模板) [編輯]
(C++11)(C++20 中已移除)(C++17)
推導呼叫可呼叫物件與一組引數的結果型別
(類模板) [編輯]
(C++11)
管理一個獨立的執行緒
(類) [編輯]
(C++20)
支援自動連線和取消的 std::thread
(類) [編輯]
(C++11)
即使從多個執行緒呼叫,也只調用一次函式
(函式模板) [編輯]
(C++11)
非同步(可能在新執行緒中)執行一個函式並返回一個將儲存結果的 std::future
(函式模板) [編輯]
封裝一個函式,以非同步檢索其返回值
(類模板) [編輯]

[編輯] 參見

檢查一個型別是否可以使用給定引數型別進行呼叫(如同透過 std::invoke
(類模板) [編輯]
指定可呼叫型別可以使用給定的一組引數型別進行呼叫
(概念) [編輯]
(C++17)(C++23)
使用給定引數呼叫任何 可呼叫 (Callable) 物件 並可能指定返回型別(自 C++23 起)
(函式模板) [編輯]