博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
std bind 原理简单图解
阅读量:6326 次
发布时间:2019-06-22

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

hot3.png

本文解释了bind 是如何工作的。为了清晰,我对图中的语法作了一些简化(例如,省略函数调用操作符的参数类型),并且简化了 bind 的实现.

  1. bind 可以用来将用户提供的需要一个参数的函数转换成不需要参数的函数对象。绑定的值(在这个例子中是123)存储在函数对象内并且会被自动传递给用户指定的函数:

这里写图片描述

  1. 参数绑定也可以用于将类成员函数转换成零参数的函数对象。猿类们都知道,非静态成员函数需要一个隐式的 this 参数。这意味着需要绑定一个合适的类实例指针到这个函数对象: 

    这里写图片描述

  2. 相应地,隐式的 this 指针也可以显式地传递给需要一个参数的函数对象: 

    这里写图片描述

  3. 函数对象经常同时使用提前绑定的参数和调用时才提供的参数。这个可以用成员函数来实现: 

    这里写图片描述

  4. 当然也可以使用非成员函数: 

    这里写图片描述

  5. 有些时候函数对象被调用时会提供多余的参数,而这些参数是目标函数不需要的。bind 会自动忽略这些多余的参数: 

    这里写图片描述

  6. 这些多余的参数不需要一定在函数对象签名的最后: 

    这里写图片描述

  7. 最后, bind 还允许重新组织函数对象的参数顺序: 

    这里写图片描述

转载于:https://my.oschina.net/wdyoschina/blog/1559481

你可能感兴趣的文章
Android AES加密算法及其实现
查看>>
Entity Framework公共的增删改方法
查看>>
hdu1698 Just a Hook 线段树:成段替换,总区间求和
查看>>
dorado spring知识补充
查看>>
Android -- ViewPager、Fragment、状态保存、通信
查看>>
如果想消除随机性的感觉
查看>>
.NET网站自动浏览器分享,解决IIS6应用池回收后第一次访问慢问题
查看>>
关于验证码识别3
查看>>
【JavaScript】javascript常用的东西
查看>>
Cucumber 入门一
查看>>
c++ 单例模式
查看>>
JAVA反射机制
查看>>
Java几款性能分析工具的对比
查看>>
SVN使用教程总结
查看>>
Chrome各个版本小常识
查看>>
阿里云图片压缩上传代码
查看>>
java关于split分割字符串,空的字符串不能得到的问题
查看>>
JavaScript函数式编程
查看>>
C++_系列自学课程_第_6_课_bitset集_《C++ Primer 第四版》
查看>>
java对象数组
查看>>