std::function_ref
< 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 表达式、绑定表达式 或其他函数对象,但不能是成员函数指针或成员对象指针。std::nontype 可以用于传递函数指针、成员函数指针和成员对象指针来构造 std::function_ref
。
std::function_ref
支持在其模板形参中提供的不含 volatile 的 cv 限定符和 noexcept 说明符的每种可能组合。
std::function_ref
的每个特化都是满足 copyable
的可平凡复制 (TriviallyCopyable) 类型。
成员对象
成员名字 | 定义 |
bound-entity (私有) |
具有未指定的可平凡复制 (TriviallyCopyable) 类型 BoundEntityType 的对象,它满足 copyable 并能够存储一个对象指针值或函数指针值(仅用于阐述的成员对象*) |
thunk-ptr (私有) |
指向 R(*)(BoundEntityType, Args&&...) noexcept(/*noex*/) 类型函数的指针,其中 /*noex*/ 当作为 std::function_ref 的模板形参的一部分的函数签名中出现 noexcept 时为 true(仅用于阐述的成员对象*) |
成员函数
构造新 function_ref 对象(公开成员函数) |
|
赋值给 function_ref (公开成员函数) |
|
调用 function_ref 所存储的代码段(trunk)(公开成员函数) |
推导指引
注解
功能特性测试宏 | 值 | 标准 | 功能特性 |
---|---|---|---|
__cpp_lib_function_ref |
202306L | (C++26) | std::function_ref |
示例
本节未完成 原因:example |
参阅
(C++11)
|
任意可复制构造的可调用对象的可复制包装 (类模板) |
(C++26)
|
任意可复制构造的可调用对象的可复制包装,支持给定调用签名中的限定符 (类模板) |
(C++23)
|
任意可调用对象的仅移动包装,支持给定调用签名中的限定符 (类模板) |
(C++26)
|
值构造标签 (标签) |