/**
* data: 2017.10.18
* bind()的意义在于,将一个函数和它的参数预先绑定在一起,便成一个无参函数
*/
#include <iostream>
#include <functional>
//相当于 给std::bind()重新起了个名字叫 CALLBACK()
#define CALLBACK(__FuncName__, ...) std::bind(&__FuncName__, ##__VA_ARGS__)
void show(int a)
{
std::cout<< a <<std::endl;
}
int sum(int a, int b)
{
return a+b;
}
int main()
{
show(3);
auto a = CALLBACK(show, 1);
auto b = CALLBACK(sum, 2, 5);
a();
std::cout<<"->"<< b() <<std::endl;
//直接使用bind
auto c = std::bind(sum, 3, 7);
std::cout<<"?->"<< c() <<std::endl;
return 0;
}
std::bind()的使用
最新推荐文章于 2024-07-15 11:21:30 发布