std::mem_fun

来自cppreference.com
< cpp‎ | utility‎ | functional
 
 
工具库
通用工具
格式化库 (C++20)
(C++11)
关系运算符 (C++20 中弃用)
整数比较函数
(C++20)(C++20)(C++20)
(C++20)
swap 与类型运算
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
常用词汇类型
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)

初等字符串转换
(C++17)
(C++17)
栈踪
 
函数对象
函数包装
(C++11)
(C++11)
部分函数应用
(C++11)
(C++20)
函数调用
(C++17)(C++23)
恒等函数对象
(C++20)
引用包装
(C++11)(C++11)
通透运算符包装
(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 前)
mem_fun
(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 Res, class T >
std::mem_fun_t<Res,T> mem_fun( Res (T::*f)() );
(1) (C++11 中弃用)
(C++17 中移除)
template< class Res, class T >
std::const_mem_fun_t<Res,T> mem_fun( Res (T::*f)() const );
(1) (C++11 中弃用)
(C++17 中移除)
template< class Res, class T, class Arg >
std::mem_fun1_t<Res,T,Arg> mem_fun( Res (T::*f)(Arg) );
(2) (C++11 中弃用)
(C++17 中移除)
template< class Res, class T, class Arg >
std::const_mem_fun1_t<Res,T,Arg> mem_fun( Res (T::*f)(Arg) const );
(2) (C++11 中弃用)
(C++17 中移除)

创建成员函数包装对象,从模板实参推导类型。包装对象期待到指向 T 类型对象的指针作为其 operator() 的首个参数。

1) 等效地调用 std::mem_fun_t<S,T>(f)std::const_mem_fun_t<S,T>(f)
2) 等效地调用 std::mem_fun1_t<S,T>(f)std::const_mem_fun1_t<S,T>(f)

此函数与相关类型于 C++11 弃用并于 C++17 移除,为了让位给更通用的 std::mem_fnstd::bind ,它们都从成员函数创建可调用类型的兼容适配器的函数对象。

参数

f - 指向要创建包装的成员函数的指针

返回值

包装 f 的函数对象。

异常

可能抛出实现定义的异常。

注解

std::mem_funstd::mem_fun_ref 的区别是前者产生的函数包装期待指向对象指针,而后者——期待引用。

示例

参阅

(C++11)
从成员指针创建出函数对象
(函数模板)
(C++11 中弃用)(C++17 中移除)
从成员函数指针创建包装器,能以一个对象引用调用
(函数模板)