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 表达式、绑定表达式 或其他函数对象,但不能是成员函数指针或成员对象指针。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) |
值构造标签 (标签) |