标签:cti ios iostream bind fun class cout wrap mil
std::bind 的功能是将一个函数和它的参数预先绑定在一起,变成一个无参函数。
std::bind 总是拷贝其参数,但是调用者可以使用std::ref来实现传递引用给std::bind。
std::ref 返回一个 reference_wrapper 类型的变量,关于 std::ref 及 reference_wrapper 的具体实现可以参照 c++ <functional> 文件。
一个例子说明std::ref的使用方法:
#include <iostream>
#include <functional>
void test_fun(int& a, int& b, int c) {
a++;
b++;
c++;
}
int main() {
int a = 1, b = 1, c = 1;
auto fun = std::bind(test_fun, a, std::ref(b), std::ref(c));
fun();
std::cout << "a:" << a << "\tb:" << b << "\tc:" << c << std::endl;
return 0;
}
标签:cti ios iostream bind fun class cout wrap mil
原文地址:https://www.cnblogs.com/tongyishu/p/13194138.html