【发布时间】:2012-10-08 11:07:28
【问题描述】:
使用 MS VC++ 2012 和 Boost 库 1.51.0
这是我的问题的快照:
struct B {
C* cPtr;
}
struct C {
void callable (int);
}
void function (B* bPtr, int x) {
// error [1] here
boost::thread* thrPtr = new boost::thread(bPtr->cPtr->callable, x)
// error [2] here
boost::thread* thrPtr = new boost::thread(&bPtr->cPtr->callable, x)
}
[1] 错误 C3867:“C::callable”:函数调用缺少参数列表;使用 '&C::callable' 创建指向成员的指针
[2] 错误 C2276: '&' : 对绑定成员函数表达式的非法操作
【问题讨论】:
-
我想你想要像
boost::thread* thrPtr = new boost::thread(boost::bind(&C::callable, bPtr->cPtr, x));这样的东西 -
@David 你的建议编译好了。经过更深入的验证,我回来了。非常感谢。
标签: c++ boost c++11 visual-studio-2012 boost-thread