The*_*ere 3 c++ mutex std deleted-functions c++11
我在代码库中广泛使用了std :: mutex.但是,其中一个类只是不允许我在其实例变量列表中添加互斥锁.我正在使用以下内容简单地实例化互斥锁 -
std::mutex myMutex;
Run Code Online (Sandbox Code Playgroud)
我将上述语句添加到类成员列表的私有部分.
我收到以下错误 -
error C2280: 'std::mutex::mutex(const std::mutex &)' : attempting to reference a deleted function
1> C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\mutex(113) : see declaration of 'std::mutex::mutex'
Run Code Online (Sandbox Code Playgroud)
我试图添加互斥锁的类被复制.
正如我所说的,我在我的代码库中使用了互斥锁,所以我可以在一个地方实例化互斥锁,而我可以在所有其他地方实例化,这是非常奇怪的.你能告诉我这里出了什么问题吗?
您正在std::mutex使用复制构造函数将类添加到类中.最有可能的是,您的类具有正在使用的默认复制构造函数.默认的复制构造函数在类中的每个成员上调用复制构造函数.但是std::mutex,通过规范删除了复制构造函数 - 它是一个不可复制的类型.
| 归档时间: |
|
| 查看次数: |
2451 次 |
| 最近记录: |