mem_fn

想到member function 成员函数

这还真就是用来调用成员函数的

普通的函数我们通过函数指针可以调用,但对于成员函数的调用稍微复杂一点,需要对象,也即this指针

因为成员函数和对象并不存储在一起,一个对象的内存空间不包括函数代码,否则每个对象都包含自己的函数代码,内存就比较浪费

看下面的例子就懂了

#include <functional>
#include <iostream> struct Foo {
void display_number(int i) {
std::cout << "number: " << i << '\n';
}
int data = 7;
}; int main() {
Foo f;
auto print_num = std::mem_fn(&Foo::display_number);
print_num(f, 42); auto access_data = std::mem_fn(&Foo::data);//专门获取对象中data值的函数
std::cout << "data: " << access_data(f) << '\n';//传入对象f,即获取f的data值
}

最新文章

  1. 算法与数据结构(八) AOV网的关键路径
  2. 新手SSH基础框架搭建
  3. 前端设计师也有必要学习seo,推荐一个seo博客
  4. 建立MySQL的ODBC
  5. IIS7.5中神秘的ApplicationPoolIdentity
  6. 【BZOJ-3555】企鹅QQ 字符串Hash
  7. udp--&gt;socket通信原理
  8. php练习题:投票
  9. [转]Javascript定义类的三种方法
  10. 查网卡信息(千M o 万M)
  11. socket 网摘
  12. 开心菜鸟系列学习笔记------------javascript(6)
  13. 浙大pat 1012题解
  14. 拓展自定义编辑器窗口(EditorGUILayout类)
  15. Sasha and Array
  16. dubbo源码分析(一)
  17. Eclipse dynamic web project 插件
  18. 使用IGP和BGP的配合达到降低路由容量目的的实验与总结
  19. 关于setTimeout的面试题
  20. centos7虚拟机设置静态ip

热门文章

  1. VUE学习-元素过渡
  2. 解决移动H5页面的刷组造成件传值数据丢失问题
  3. cenots7 rpm 包升级ssh
  4. centos7部署Nacos单机版
  5. SpringBoot 块形式的配置文件写法(简单示例)
  6. Hello,Golang
  7. 将pyinstaller打包的exe文件制作成安装包
  8. Delphi模拟win+tab按键效果
  9. Java语言中的复合运算符会自动进行类型转换
  10. [SSH-1]publickey,gssapi-keyex,gssapi-with-mic