使用 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] error C2276: '&' : 对绑定成员函数表达式的非法操作