【发布时间】:2013-04-28 13:01:32
【问题描述】:
我在尝试使用BOOST threads 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 变量。 (或者我错了吗?)。这基本上意味着 boost 现在将允许复制互斥体
类本身
PointProcessor
{
boost::mutex mtex; // The one and only mutex
// Other members
};
我可以使用指针代替
PointProcessor* 处理器 = 新 PointProcessor(x,y,z)
问题是,这是一个大型代码库,我不想将其余的实现更改为 PointProcessor* processor = new PointProcessor,因为它们只是 PointProcessor processor = PointProcessor(x,y,z)
【问题讨论】:
标签: c++ multithreading boost mutex private-members