【发布时间】:2014-04-28 19:24:02
【问题描述】:
.h 文件(标题)中的类如下所示
#include <boost/thread.hpp>
class MyClass{
private:
boost::mutex bPoolMtx_;
// ... other vars
public:
// public vars and methods
}
我在尝试构建/编译时遇到以下错误。
MyClass.h:38:7: note: ‘MyClass::MyClass(const MyClass&)’ is implicitly deleted because the default definition would be ill-formed:
MyClass.h:38:7: error: use of deleted function ‘boost::mutex::mutex(const boost::mutex&)’
我还没有在 cpp 文件中使用互斥锁。当我注释掉 boost::mutex 行时,它构建得很好。怎么回事?
【问题讨论】:
-
表示互斥量不可复制。您可能正在某处复制
MyClass实例。这要求数据成员是可复制的。 -
没错。尝试禁用
MyClass的复制,然后看看会发生什么。