2016-11-25 63 views
0

中聲明的私有成員我想知道是否有辦法解決以下問題,而無需更改訪問類型ptrboost :: thread_specific_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>' 

回答

1

boost::thread_specific_ptr是不可複製的,因此不能由值被返回。要麼返回一個(常數)參考構件PTR:

const boost::thread_specific_ptr< B> & get() const { return ptr; } 

或者返回包含指針:

B * get() const { return ptr.get(); }