C++ 11新特性:std bind 原理简单图解(转载)
2024-10-07 06:38:01
本文解释了bind 是如何工作的。为了清晰,我对图中的语法作了一些简化(例如,省略函数调用操作符的参数类型),并且简化了 bind 的实现.
- bind 可以用来将用户提供的需要一个参数的函数转换成不需要参数的函数对象。绑定的值(在这个例子中是123)存储在函数对象内并且会被自动传递给用户指定的函数:
参数绑定也可以用于将类成员函数转换成零参数的函数对象。猿类们都知道,非静态成员函数需要一个隐式的 this 参数。这意味着需要绑定一个合适的类实例指针到这个函数对象:
相应地,隐式的 this 指针也可以显式地传递给需要一个参数的函数对象:
函数对象经常同时使用提前绑定的参数和调用时才提供的参数。这个可以用成员函数来实现:
当然也可以使用非成员函数:
有些时候函数对象被调用时会提供多余的参数,而这些参数是目标函数不需要的。bind 会自动忽略这些多余的参数:
这些多余的参数不需要一定在函数对象签名的最后:
最后, bind 还允许重新组织函数对象的参数顺序:
转自:https://www.cnblogs.com/mod109/p/9249897.html
最新文章
- Linux里的2>;&;1
- fastclick 解决js穿透问题
- maven打包步骤_maven 构建项目
- mySql-通过group by分组
- Visual studio 非常好的插件
- 马化腾:办公用QQ休闲用微信[Dream Catchers论坛]
- Nutch相关框架视频教程--说明
- mysql无法启动 mysqld process already exists
- 利用dns解析来实现网站的负载均衡
- Android(java)学习笔记115:Android InputMethodManager输入法简介
- 关于Linux的总结(三)
- 优雅智慧女性课程班 - 公开课程 - 课程介绍 - 中国人民大学商学院EDP中心
- Restful 和 Jersey介绍(Web Service )
- 【Android Developers Training】 63. 定义形状
- 关于Spring事物的面试题
- Git基础(四) 查看已暂存和未暂存的修改
- 开源GIS浅谈 【转】
- 浅谈Final
- 鼠标移动上去,元素旋转;web前端鼠标经过图片凸起
- JS获取对象“属性和方法”的方法