std::function_ref
来自 cppreference.cn
< 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) 目标体 (target) 的引用 - 函数,lambda 表达式,bind 表达式,或其他函数对象,但不包括指向成员函数的指针和指向成员对象的指针。 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 如果 noexcept 出现在函数签名中,作为 |
[编辑] 数据成员
成员 | 定义 |
BoundEntityType bound-entity |
一个绑定实体对象 (仅为阐释目的的成员对象*) |
FunctionPointerType thunk-ptr |
一个存储的函数指针 (仅为阐释目的的成员对象*) |
[编辑] 成员函数
构造一个新的 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) |
值构造标签 (标签) |