У меня есть небольшой шаблонный класс с нестатическим членом типа 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 '.
У меня есть другой, не шаблонный класс, в котором у меня нет проблем с использованием любого типа мьютекса.