阅读量:4
std::bind 是 C++11 引入的一个功能强大的函数模板,它可以用于绑定函数(包括成员函数和非成员函数)的参数。但是,当用于非成员函数时,需要使用 std::placeholders 来表示占位符,以便在调用绑定的函数时传递参数。
下面是一个使用 std::bind 和非成员函数的例子:
#include
#include
// 非成员函数
void print_sum(int a, int b) {
std::cout << "Sum: " << a + b << std::endl;
}
int main() {
// 使用 std::placeholders 创建占位符
std::placeholders::_1 表示第一个参数,std::placeholders::_2 表示第二个参数
// 使用 std::bind 绑定非成员函数和参数
auto bound_print_sum = std::bind(print_sum, std::placeholders::_1, std::placeholders::_2);
// 调用绑定的非成员函数
int x = 3;
int y = 4;
bound_print_sum(x, y); // 输出 "Sum: 7"
return 0;
}
在这个例子中,我们使用 std::bind 将非成员函数 print_sum 绑定到参数 x 和 y,然后调用绑定的函数。注意,我们使用了 std::placeholders 来表示占位符。
以上就是关于“c++ std::bind能用于非成员函数吗”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm