std::copyable_function
定義於標頭檔案 <functional> |
||
template< class... > class copyable_function; // 未定義 |
(1) | (C++26 起) |
template< class R, class... Args > class copyable_function<R(Args...)>; |
(2) | (C++26 起) |
類模板 std::copyable_function
是一個通用的多型函式包裝器。std::copyable_function
物件可以儲存和呼叫任何可複製構造的(CopyConstructible)可呼叫(Callable) 目標——函式、lambda 表示式、繫結表示式或其他函式物件,以及指向成員函式和指向成員物件的指標。
儲存的可呼叫物件稱為 std::copyable_function
的 目標。如果 std::copyable_function
不包含目標,則稱為 空。與 std::function 不同,呼叫一個 空的 std::copyable_function
會導致未定義行為。
std::copyable_function
支援其模板引數中提供的所有可能的 cv 限定符(不包括 volatile)、引用限定符和 noexcept 說明符的組合。這些限定符和說明符(如果有)被新增到其 operator()
。
std::copyable_function
滿足 可複製構造的(CopyConstructible) 和 可複製賦值的(CopyAssignable) 要求。
目錄 |
[編輯] 成員型別
型別 | 定義 |
result_type
|
R
|
[編輯] 成員函式
構造一個新的 std::copyable_function 物件(public 成員函式) | |
銷燬一個 std::copyable_function 物件(public 成員函式) | |
替換或銷燬目標 (public 成員函式) | |
交換兩個 std::copyable_function 物件的目標(public 成員函式) | |
檢查 std::copyable_function 是否有目標(public 成員函式) | |
呼叫目標 (public 成員函式) |
[編輯] 非成員函式
(C++26) |
過載 std::swap 演算法 (函式) |
(C++26) |
將 std::copyable_function 與 nullptr 進行比較(函式) |
[編輯] 註釋
實現可以在 std::copyable_function
物件中儲存一個小型的可呼叫物件。這種小型物件最佳化對於函式指標和 std::reference_wrapper 特化是有效要求的,並且只能應用於 std::is_nothrow_move_constructible_v<T> 為 true 的型別 T
。
特性測試宏 | 值 | 標準 | 特性 |
---|---|---|---|
__cpp_lib_copyable_function |
202306L |
(C++26) | std::copyable_function
|
[編輯] 示例
本節不完整 原因:無示例 |
[編輯] 參閱
(C++11) |
任何可複製構造的可呼叫物件的包裝器 (類模板) |
(C++23) |
任何支援給定呼叫簽名中限定符的可呼叫物件的僅移動包裝器 (類模板) |
(C++26) |
任何可呼叫物件的非擁有包裝器 (類模板) |