命名空间
变体
操作

std::function_ref

来自 cppreference.cn
< cpp‎ | utility‎ | functional
 
 
 
函数对象
函数包装器
(C++11)
function_ref
(C++26)
(C++11)
函数调用
(C++17)(C++23)
恒等函数对象
(C++20)
透明运算符包装器
(C++14)
(C++14)
(C++14)
(C++14)  
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)

旧式绑定器和适配器
(直到 C++17*)
(直到 C++17*)
(直到 C++17*)
(直到 C++17*)  
(直到 C++17*)
(直到 C++17*)(直到 C++17*)(直到 C++17*)(直到 C++17*)
(直到 C++20*)
(直到 C++20*)
(直到 C++17*)(直到 C++17*)
(直到 C++17*)(直到 C++17*)

(直到 C++17*)
(直到 C++17*)(直到 C++17*)(直到 C++17*)(直到 C++17*)
(直到 C++20*)
(直到 C++20*)
 
 
定义于头文件 <functional>
template< class... >
class function_ref; // 未定义
(1) (自 C++26 起)
template< class R, class... Args >

class function_ref<R(Args...)>;
template< class R, class... Args >
class function_ref<R(Args...) noexcept>;
template< class R, class... Args >
class function_ref<R(Args...) const>;
template< class R, class... Args >

class function_ref<R(Args...) const noexcept>;
(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 )

其中 noextrue 如果 noexcept 出现在函数签名中,作为 std::function_ref 的模板参数的一部分,否则为 false
(仅为阐释目的的成员类型*)

[编辑] 数据成员

成员 定义
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)
任何可复制构造的可调用对象的可复制包装器
(类模板) [编辑]
任何可复制构造的可调用对象的,支持给定调用签名的限定符的可复制包装器
(类模板) [编辑]
任何可调用对象的,支持给定调用签名的限定符的可移动包装器
(类模板) [编辑]
值构造标签
(标签)[编辑]