C++11供给的std::ref本家儿要用于std::bind, std::bind默认按照值传递,std::ref可以更改为引用传递,而std::cref是包装const的引用传递,本文将连系例子来申明若何利用std::ref.
起首界说如下所示的函数,函数三个入参都是引用传递的体例
接着不利用std::ref的环境下,按照如下图所示的代码段来挪用std::bind
调试运行成果如下所示,可以看出,挪用std::bind传入的三个变量,运行前后都没有转变,申明std::bind默认是按照值传递
采用std::ref来包装三个变量,使得传入std::bind的变量为引用的体例
从运行成果看,运行前后变量的值,发生了转变,这也就申明std::bind颠末std::ref之后采用的是引用的体例
采用std::cref是包装const的引用体例,可是const是不克不及改变值的
从运行成果看,const变量是不会转变的,因为const变量不克不及点窜
0 篇文章
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!