我在C 中所做的类似的事情:
typedef boost::shared_ptr<boost::thread> thread_pointer;
Class myClass {
// ......
thread_pointer my_ptr;
}
myClass::function1 {
my_ptr = new boost::thread(&myClass::function2, this);
}
,但它说操作员'='没有匹配。即使我使用boost :: bind,我也会遇到错误。
构造函数是显式的,所以您需要
my_ptr = thread_pointer(new boost::thread(&myClass::function2, this));
或
my_ptr.reset(new boost::thread(&myClass::function2, this));
这是假设您首先需要指针。