std::bind()的使用

来源:互联网 发布:软件出口退税政策 编辑:程序博客网 时间:2024/05/20 14:18
/** * 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;}

原创粉丝点击