std::bind 接受一个可调用的对象,一般就是函数呗。。

还是先上代码:

1 void func(int x, int y, int z)
2 {
3     std::cout << "hello!" << x << y << z << std::endl;
4 }

我们可以通过std::bind调用这个函数:

1 std::_Bind<true, void, void(*const)(int, int, int), int, int, int> test_bind = std::bind(func, 7, 8, 9);

其中7,8,9是传给func函数的参数。看这恶心的声明,简直比上一篇博客举得例子还要恶心,所以auto又大显身手了:

1 auto test_bind = std::bind(func, 7, 8, 9);

短了好多好多啊。。。

这时候我们调用:

1 test_bind();

就会打印“hello!789”了。

然后再说一下占位符,我们把test_bind改成这样:

1 auto test_bind = std::bind(func, std::placeholders::_1, std::placeholders::_2, 9);

这时候我们可以调用:

1 test_bind(1, 2);

就会打印“hello!129”。也就是前两个参数是可以指定的了。(第三个参数不可以)。

其中 std::placeholders::_1 是占位符,我试了试好像能到 _20 (这。。)

在我看来,std::bind这个东西用在写事件回调中很好用~~~

转载于:https://www.cnblogs.com/wolfred7464/p/3685294.html

C++ 11 笔记 (四) : std::bind相关推荐

  1. C++11中std::bind的使用

    std::bind函数是用来绑定函数调用的某些参数的.std::bind它可以预先把指定可调用实体的某些参数绑定到已有的变量,产生一个新的可调用实体.它绑定的参数的个数不受限制,绑定的具体哪些参数也不 ...

  2. C++11 std::bind std::function 高级用法

    C++11 std::bind std::function 高级用法 (c++11的新特性) 原文:https://blog.csdn.net/yangjie6898862/article/detai ...

  3. C++11 std::function, std::bind, std::ref, std::cref

    C++11 std::function, std::bind, std::ref, std::cref 转自:http://www.jellythink.com/ std::function 看看这段 ...

  4. c++11 std::bind与std::function

     function模板类和bind模板函数,使用它们可以实现类似函数指针的功能,但却比函数指针更加灵活,特别是函数指向类的非静态成员函数时. std::function可以绑定到全局函数/类静态成 ...

  5. cocos2dx[3.2](11)——新回调函数std::bind

    [唠叨] 自从3.0引用了C++11标准后,回调函数采用的新的函数适配器:std::function.std::bind. 而曾经的回调函数menu_selector.callfunc_selecto ...

  6. C++11新特性之std::bind()

    文章转载自:http://www.jellythink.com/archives/773 Cocos2d-x中有如下代码: // new callbacks based on C++11#define ...

  7. 【C++】C++11的std::function和std::bind用法详解

    在设计回调函数的时候,无可避免地会接触到可回调对象.在C++11中,提供了std::function和std::bind两个方法来对可回调对象进行统一和封装. 可调用对象 C++中有如下几种可调用对象 ...

  8. C++11新特性之std::function std::bind

    std::function 在c++98&03时我们通常使用回调函数来处理一些需要某种场景下才触发的回调操作,但回调函数有一个限制就是它只能赋值给同类型的全局或者静态函数,对于其他有相同的返回 ...

  9. C++11 std::bind 和 std::placeholder

    @time 2019-07-07 @author Ruo_Xiao std::bind 则是用来绑定函数调用的参数的, 它解决的需求是我们有时候可能并不一定能够一次性获得调用某个函数的全部参数,通过这 ...

最新文章

  1. python动态排名可视化_动态排名可视化 | 带你领略编程语言20年风云变化
  2. docker建多个mysql_《容器化系列二》利用Docker容器化技术安装多个mysql
  3. 没有bug队——加贝——Python 55,56
  4. GestureDetector类及其用法
  5. java biz包 怎么写,关于java dao与biz分工探讨
  6. optional用法_还在重复写空指针检查代码?考虑使用 Optional 吧!
  7. shiro 同时实现url和按钮的拦截_Shiro是如何拦截未登录请求的(一)
  8. PSR-4——新鲜出炉的PHP规范
  9. 计算机接口技术试题,广西工学院计算机接口技术考核试题(4套,有答案)
  10. 微信中调用扫一扫最简便的方法 5行代码实现H5扫一扫 HTML5扫二维码最简便的办法
  11. 第3.3节 通过GPIB控制矢量网络分析仪
  12. spring boot火车票预订系统毕业设计-附源码091029
  13. GitCode上手使用体验
  14. 金属,还是Disturbed的好。
  15. 【机器学习】1. 线性模型 - 普通最小二乘法
  16. 发现fir.im的bug,可以获取fir.im用户的任何软件id和用户token。
  17. 常用的华为路由器命令
  18. XiaoHu日志 6/17~6/19
  19. cpptraj的常用命令
  20. 如何改变讨好型人格?

热门文章

  1. qvector 结构体排序_C++结构体的应用_YCOJ
  2. 网络怎么排错?手把手教你
  3. 华为认证数通专家HCIE-Datacom 11月30日发布
  4. Linux 内核网络协议栈运行原理
  5. file extension php,.php File Extension
  6. hive 0.11 mysql_Hive的升级(0.8.0到0.11.0)
  7. 回顾 | Alibaba Cloud Native Day 杭州场圆满结束(附 PPT 下载)
  8. O'Reilly 1500 份问卷调研:2019 年 Serverless 落地到底香不香?
  9. java进出栈_JVM函数调用:Java出入栈
  10. php读写分离数据不能同步,thinkphp 下数据库读写分离代码剖析