bind简介
bind可以用来绑定函数指针、函数引用、成员函数指针和函数对象等的参数。
bind接收第一个参数为可调用对象f,之后bind最多可接受9个参数,且参数数量与f的参数数量一致。
绑定普通函数
1
2
3int f(int a,int b){return a+b;}
bind(f,_1,9)(3); // 固定第二个参数,等价于f(3,9)
bind(f,9,_1)(3); // 固定第二个参数,等价于f(9,3)绑定成员函数
1
2
3
4struct demo{void func(int a,int b){return a+b;}};
demo x;
bind(&demo::func,x,_1,9)(3);
bind(&demo::func,x,9,_1)(3);
signals2简介
signals2实现了线程安全的回调机制,一个signal可以关联多个slot,当signal发出时,所有关联的slot会被调用。
实例简介
1 |
|
参考:
[1].https://www.boost.org/doc/libs/1_69_0/doc/html/signals2/tutorial.html#id-1.3.37.4.2