我是boost库的新手,在练习绑定示例时,我编写了以下代码。但是,似乎“res”被正确计算了,但是正确的结果并没有传输回信号。请帮助,以下代码段中有什么问题。 代码在http://cpp.sh/上编译并运行
#include <iostream>
#include<boost/signals2.hpp>
using namespace std;
class MathObject{
public:
int AddOps(int op1, int op2);
};
int MathObject::AddOps(int op1, int op2){
int res = op1 + op2;
cout << "Result of AddOps: " << res << endl;
return res;
}
int main(void){
MathObject mObj;
boost::signals2::signal<int(int)> incrementer;
incrementer.connect(boost::bind(&MathObject::AddOps, &mObj, 1, _1));
boost::signals2::signal<int(int)> doubler;
doubler.connect(boost::bind(&MathObject::AddOps, &mObj, _1, _1));
cout << "Incrementer of 5" << incrementer(5) << endl;
cout << "Doubler of 5" << doubler(5) << endl;
}
输出:
Result of AddOps: 6
Incrementer of 51
Result of AddOps: 10
Doubler of 51