std::function_ref
来自 cppreference.com
< cpp | utility | functional
定义在头文件 <functional> 中 |
||
template< class... > class function_ref; // 未定义 |
(1) | (自 C++26 起) |
template< class R, class... Args > class function_ref<R(Args...)>; |
(2) | (自 C++26 起) |
类模板 std::function_ref
是一个非拥有函数包装器。std::function_ref
对象可以存储和调用对 Callable 目标 的引用 - 函数、lambda 表达式、bind 表达式 或其他函数对象,但不包括指向成员函数的指针和指向成员对象的指针。 std::nontype 可用于通过传递函数指针、指向成员函数的指针和指向成员对象的指针来构造 std::function_ref
。
std::function_ref
支持其模板参数中提供的 cv 限定符 和 noexcept 限定符 的所有可能组合,但不包括 volatile。
std::function_ref
的每个特化都是一个满足 copyable
的 TriviallyCopyable 类型。
内容 |
[编辑] 成员对象
成员 | 定义 |
bound-entity |
一个具有未指定类型 BoundEntityType 的对象,该类型满足 copyable 并且能够存储指向对象值的指针或指向函数值的指针(仅供说明*) |
thunk-ptr |
指向类型为 R(*)(BoundEntityType, Args&&...) noexcept(/*noex*/) 的函数的指针,其中 /*noex*/ 如果函数签名中存在 noexcept 作为 std::function_ref 模板参数的一部分,则为 true(仅供说明*) |
[编辑] 成员函数
构造一个新的 function_ref 对象(公共成员函数) | |
赋值给 function_ref (公共成员函数) | |
调用 function_ref 的存储的 thunk(公共成员函数) |
[编辑] 推导指南
[编辑] 备注
功能测试 宏 | 值 | Std | 功能 |
---|---|---|---|
__cpp_lib_function_ref |
202306L | (C++26) | std::function_ref
|
[编辑] 示例
本节内容尚不完整 原因: 例子 |
[编辑] 另请参阅
(C++11) |
任何可复制的可调用对象的可复制包装器 (类模板) |
(C++26) |
任何支持给定调用签名中的限定符的可复制的可调用对象的可复制包装器 (类模板) |
(C++23) |
任何支持给定调用签名中的限定符的可调用对象的仅移动包装器 (类模板) |
(C++26) |
值构造标签 (标签) |