std::experimental::function

来自cppreference.com
 
 
技术规范
文件系统库 (文件系统 TS)
库基础 (库基础 TS)
库基础 2 (库基础 TS v2)
库基础 3 (库基础 TS v3)
并行扩展 (并行 TS)
并行扩展 2 (并行 TS v2)
并发扩展 (并发 TS)
并发扩展 2 (并发 TS v2)
概念 (概念 TS)
范围 (范围 TS)
反射 (反射 TS)
数学特殊函数 (特殊函数 TR)
 
 
 
在标头 <experimental/functional> 定义
template< class >
class function; /* undefined */
(库基础 TS)
template< class R, class... Args >
class function<R(Args...)>
(库基础 TS)

std::experimental::functionstd::function 的修改版本,支持类型擦除分配器。

成员类型

类型 定义
allocator_type

std::experimental::erased_type

(库基础 TS)
(库基础 TS v3 前)

std::pmr::polymorphic_allocator<>

(库基础 TS v3)

成员函数

构造新的 std::experimental::function 实例
(公开成员函数)
赋值新目标
(公开成员函数)
交换内容
(公开成员函数)
(库基础 TS v3 中移除)
获得指向此对象用来分配内存的 memory_resource 的指针
(公开成员函数)
(库基础 TS v3)
获取此对象用以分配内存的擦除类型的 std::pmr::polymorphic_allocator
(公开成员函数)

非成员函数

特化 swap 算法
(函数模板)
(库基础 TS v3 中移除)
比较 std::experimental::functionnullptr
(函数模板)

辅助类

特化 std::uses_allocator 类型特性
(类模板特化)

等同于 std::function 的成员

成员类型

类型 定义
result_type R
库基础 TS v3 中移除的成员类型
argument_type sizeof...(Args)==1 ,且 TArgs... 中第一个并为唯一的类型则为 T
first_argument_type sizeof...(Args)==2T1Args... 中二个类型的第一个则为 T1
second_argument_type sizeof...(Args)==2T2Args... 中二个类型的第二个则为 T2

成员类型 argument_typefirst_argument_typesecond_argument_type 被移除,因为 std::function 的对应成员类型在 C++20 中亦被移除。

(库基础 TS v3)

成员函数

析构 std::function 实例
(std::function<R(Args...)> 的公开成员函数)
检查是否包含了有效的目标
(std::function<R(Args...)> 的公开成员函数)
调用其目标
(std::function<R(Args...)> 的公开成员函数)
目标访问
获得目标对象的 typeid
(std::function<R(Args...)> 的公开成员函数)
获得指向 std::function 所存储的目标的指针
(std::function<R(Args...)> 的公开成员函数)