Namespaces
Variants

std::experimental:: function

From cppreference.net
定义于头文件 <experimental/functional>
template < class >
class function ; /* 未定义 */
(库基础TS)
template < class R, class ... Args >
class function < R ( Args... ) >
(库基础TS)

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

目录

成员类型

类型 定义
allocator_type

std::experimental::erased_type

(库基础技术规范)
(直至库基础技术规范 v3)

std:: pmr :: polymorphic_allocator <>

(库基础技术规范 v3)

成员函数

构造新的 std::experimental::function 实例
(公开成员函数)
分配新目标
(公开成员函数)
交换内容
(公开成员函数)
(removed in library fundamentals TS v3)
获取指向此对象用于分配内存的内存资源的指针
(公开成员函数)
(library fundamentals TS v3)
获取此对象用于分配内存的类型擦除式 std::pmr::polymorphic_allocator
(公开成员函数)

非成员函数

特化 swap 算法
(函数模板)
(在库基础技术规范 v3 中移除)
比较 std::experimental::function nullptr
(函数模板)

辅助类

(在库基础技术规范 v3 中移除)
特化 std::uses_allocator 类型特征
(类模板特化)

std:: function 相同的成员

成员类型

类型 定义
result_type R
在 Library Fundamental TS v3 中移除的成员类型
argument_type sizeof... ( Args ) == 1 T Args... 中第一个且唯一的类型时为 T
first_argument_type sizeof... ( Args ) == 2 T1 Args... 中两个类型中的第一个时为 T1
second_argument_type sizeof... ( Args ) == 2 T2 Args... 中两个类型中的第二个时为 T2

成员类型 argument_type first_argument_type second_argument_type 已被移除,因为对应的 std::function 成员类型已在 C++20 中移除。

(library fundamentals TS v3)

成员函数

销毁 std::function 实例
( std::function<R(Args...)> 的公开成员函数)
检查是否包含目标
( std::function<R(Args...)> 的公开成员函数)
调用目标
( std::function<R(Args...)> 的公开成员函数)
目标访问
获取存储目标的 typeid
( std::function<R(Args...)> 的公开成员函数)
获取指向存储目标的指针
( std::function<R(Args...)> 的公开成员函数)