我有一个带有类型非静态成员的小模板类boost::shared_mutex
。每当我尝试编译它时,我都会收到错误消息:
'boost::shared_mutex::shared_mutex' : cannot access private member declared in class 'boost::shared_mutex'
.
boost::shared_mutex
确实有一个私有嵌套类shared_mutex
,但我不明白为什么会出现这个问题。
这是我的课:
#include <boost/thread.hpp>
#include <boost/thread/shared_mutex.hpp>
#include <queue>
template <typename T>
class CThreadSafeQueue
{
public:
CThreadSafeQueue();
private:
boost::mutex _sharedMutex;
std::queue<T> _queue;
};
template <typename T>
CThreadSafeQueue<T>::CThreadSafeQueue()
{
}
常规的 `boost::mutex' 也会发生同样的情况。
我有另一个非模板类,在其中使用任何一种互斥锁类型都没有问题。