我想知道是否有办法在不更改 ptr 访问类型的情况下解决以下问题。
class A
{
private:
static boost::thread_specific_ptr< B> ptr;
public:
boost::thread_specific_ptr< B> get() { return poolmanager_boost; }
};
错误:
boost::thread_specific_ptr<B>::thread_specific_ptr': cannot access private member declared in class 'boost::thread_specific_ptr<B>'
答案 0 :(得分:1)
boost::thread_specific_ptr
是不可复制的,因此无法按值返回。将(const)引用返回给成员ptr:
const boost::thread_specific_ptr< B> & get() const { return ptr; }
或者返回包含的指针:
B * get() const { return ptr.get(); }