deque と boost::mutex に問題があります。以下のエラーでコンパイルされる簡単な例を作成しました。
問題は、プライベート メンバーとして 1 つ以上のミューテックスを持つクラスの両端キューが必要なことです。現在、この例ではエラーが発生していますが:
エラー 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;
};