BOOST スレッド 1.53.0を使用しようとしたときに問題が発生しました。私は BOOST の初心者なので、プロジェクトの大きなクラスにスレッド モード処理が必要になるという問題があります。
コードをコンパイルしている間、私はエラーを受け取り続けました:
error C2248: 'boost::mutex::mutex' : cannot access private member declared in class 'boost::mutex'
オンラインで読んでいるのは、Boostのlock_guardを使用すると、以下のようなステートメントになることがわかりました
PointPorcessor processor = PointProcessor(x,y,z);
クラスのインスタンスを作成し、それをprocessor
変数に割り当てています。(または私は間違っていますか?)。これは基本的に、ブーストがミューテックスのコピーを許可することを意味します
クラス自体
PointProcessor
{
boost::mutex mtex; // The one and only mutex
// Other members
};
代わりに PointProcessor* processor = new PointProcessor(x,y,z) のようにポインターを使用できます 問題は、これは大きなコードベースであり、残りの実装を変更したくないということですPointProcessor* processor = new PointProcessor
。PointProcessor processor = PointProcessor(x,y,z)