我在使用 deque 和 boost::mutex 时遇到了一些问题,我制作了一个简单的示例,该示例将通过以下错误进行编译。
问题是我想要一个具有一个或多个互斥锁作为私有成员的类的双端队列。虽然目前该示例给出了一个错误:
错误 C2248:“boost::mutex::mutex”:无法访问在类“boost::mutex”中声明的私有成员
我看过一些相关的帖子,但到目前为止我还没有设法解决这个具体问题。
任何帮助将不胜感激...
#include <iostream>
#include <boost/thread.hpp>
#include <deque>
using namespace std;
class object {
public:
void process(void)
{
m_mutex.lock();
// do something
a = a*10;
m_mutex.unlock();
}
object(int v){ a = v; }
private:
int a;
boost::mutex m_mutex;
};
int main(int argc, char* argv[])
{
deque<object> obj;
obj.push_back( object( 1 ) );
obj.push_back( object( 2 ) );
obj.push_back( object( 3 ) );
obj.at(0).process();
obj.at(1).process();
obj.at(2).process();
return 0;
};