std::function_ref
来自 cppreference.cn
定义于头文件 <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
支持其模板参数中提供的 cv-限定符(不包括 volatile)和 noexcept-说明符的所有可能组合。
std::function_ref
的每个特化都是一个 可平凡复制 (TriviallyCopyable) 类型,它满足 copyable
。
目录 |
[编辑] 成员类型
成员 | 定义 |
BoundEntityType (私有) |
未指定 可平凡复制 (TriviallyCopyable) 类型,它满足 copyable 并且能够存储对象指针值或函数指针值(仅供说明的成员类型*) |
FunctionPointerType (私有) |
R(*)(BoundEntityType , Args&&...) noexcept(noex )
其中 noex 为 true,如果 |
[编辑] 数据成员
成员 | 定义 |
BoundEntityType bound-entity |
一个绑定的实体对象 (仅用于阐释的成员对象*) |
FunctionPointerType thunk-ptr |
一个存储的函数指针 (仅用于阐释的成员对象*) |
[编辑] 成员函数
构造一个新的 function_ref 对象(public 成员函数) | |
赋值一个 function_ref (public 成员函数) | |
调用 function_ref 存储的 thunk(public 成员函数) |
[编辑] 推导指南
[编辑] 注意
特性测试宏 | 值 | 标准 | 特性 |
---|---|---|---|
__cpp_lib_function_ref |
202306L |
(C++26) | std::function_ref
|
[编辑] 示例
本节不完整 原因:示例 |
[编辑] 参阅
(C++11) |
任何可复制构造的可调用对象的包装器 (类模板) |
(C++26) |
任何可复制构造的可调用对象的包装器,支持给定调用签名中的限定符 (类模板) |
(C++23) |
任何支持给定调用签名中限定符的可调用对象的仅移动包装器 (类模板) |
(C++26) |
值构造标签 (标签) |