http://www.boost.org/doc/libs/1_48_0/doc/html/ref.html
void func(int& val)
{
val = 10;
}
int main()
{
int val = 0;
std::bind(func, val)();
std::cout << val << std::endl;
std::bind(func, std::ref(val))();
std::cout << val << std::endl;
}
输出:
0
10
std::bind构造的对象内部保存对象拷贝,引用传参给被绑定的函数时传的是bind构造的对象内部保存的参数的引用,而非被绑定参数的引用,std::ref就是为了解决这一类问题
本文通过一个具体的 C++ 示例说明了 std::bind 和 std::ref 的使用方式及区别。当 std::bind 绑定函数时,若直接传递局部变量,则会复制该变量;而 std::ref 则可以确保绑定的是原始变量的引用,从而改变其值。
1502

被折叠的 条评论
为什么被折叠?



