博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
std::function 和 std::bind 的简单例子
阅读量:4070 次
发布时间:2019-05-25

本文共 1485 字,大约阅读时间需要 4 分钟。

#include 
#include
#include
using namespace std;void print(){ std::cout << "here is print" <<'\n';}void print_num(int i){ std::cout << i << '\n';}void print_add(int i, int j){ std::cout << i+j << '\n';}class Foo{public: Foo(int data) { m_data = data; } void print_sum(int n1, int n2) { std::cout << n1 + n2 << std::endl; } int m_data;};int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); using namespace std::placeholders;//------------------------------------------------------- //调用void print()函数 //1.不使用std::bind std::function
f = print; f(); //2.使用std::bind std::function
f_bind = std::bind(print); f_bind(); //调用void print_num(int i)函数 //1.不使用std::bind std::function
ff = print_num; ff(12345); //2.使用std::bind std::function
ff_bind = std::bind(print_num, 12345); ff_bind(); //调用void print_adds(int i, int j)函数 //1.不使用std::bind std::function
fff = print_add; fff(1,2); //2.使用std::bin std::function
fff_bind = std::bind(print_add, 1,2); fff_bind();//------------------------------------------------------- // 绑定指向成员函数指针 //使用auto自动推导数据类型 Foo *foo = new Foo(20); std::function
f1 = std::bind(&Foo::print_sum, foo, 95, 4); f1(); std::function
f2 = std::bind(&Foo::print_sum, foo, 95, _1); f2(5); auto f3 = std::bind(&Foo::print_sum, foo, 95, 6); f3(); auto f4 = std::bind(&Foo::print_sum, foo, 95, _1); f4(7); return a.exec();}

转载地址:http://uemji.baihongyu.com/

你可能感兴趣的文章
Encoding Schemes
查看>>
带WiringPi库的交叉笔译如何处理二之软链接概念
查看>>
Java8 HashMap集合解析
查看>>
自定义 select 下拉框 多选插件
查看>>
linux和windows内存布局验证
查看>>
移动端自动化测试-Mac-IOS-Appium环境搭建
查看>>
Selenium之前世今生
查看>>
Selenium-WebDriverApi接口详解
查看>>
Selenium-ActionChains Api接口详解
查看>>
Selenium-Switch与SelectApi接口详解
查看>>
Selenium-Css Selector使用方法
查看>>
Linux常用统计命令之wc
查看>>
fastcgi_param 详解
查看>>
解析zookeeper的工作流程
查看>>
搞定Java面试中的数据结构问题
查看>>
慢慢欣赏linux make uImage流程
查看>>
linux内核学习(7)脱胎换骨解压缩的内核
查看>>
慢慢欣赏linux 内核模块引用
查看>>
kprobe学习
查看>>
慢慢欣赏linux CPU占用率学习
查看>>