【发布时间】:2015-08-24 02:27:16
【问题描述】:
我正在尝试使用 boost 线程对我的一个应用程序进行多线程处理。
我遇到的问题是boost::bind。
这是我想要做的:
boost::bind(&Class::CalculateRT(i, i - 1), RT));
考虑:
RT is a TransformType
typedef std::pair<Eigen::Matrix3d, Eigen::Vector3d> TransformType;
CalculateRT 是一种方法:
TransformType Class::CalculateRT(int i, int j) 返回,你可以猜到,RT。
我想要的是能够绑定我的方法,获取它返回的内容(RT),然后用类似的东西线程化它:
boost::thread MultiThreadingRTCalculation(boost::bind(&Class::CalculateRT(i, i - 1), RT));
我很确定我将 RT 作为第二个参数使用了错误的绑定。
在查看了其他一些 StackOverflow 问题后,我尝试了这样的事情:
boost::function<TransformType()> BoostFunction(boost::bind(&Class::CalculateRT(i, i - 1), RT));
所有这些在 VS2013 中直到编译时才显示错误,这会弹出:错误 C2825: 'F': must be a class or namespace when after '::' 错误。
感谢您的帮助!
【问题讨论】:
标签: c++ boost boost-thread boost-bind