gpt4 book ai didi

c++ - 错误:使用已删除的函数 boost::shared_mutex::shared_mutex

转载 作者:行者123 更新时间:2023-11-28 00:10:01 25 4
gpt4 key购买 nike

这真的很奇怪。首先,我不知道您可以删除函数,其次,这发生在外部库中。

错误的情况是我正在使用 QtCreator 构建项目并一起 boost ,没有任何静态库。

使用的编译器是gcc

myprogram.h:4:7: error: use of deleted function 'boost::shared_mutex::shared_mutex(const boost::shared_mutex&)'
In file included from ../libs/boost155/boost/thread/lock_guard.hpp:11:0,
from ../libs/boost155/boost/thread/pthread/thread_data.hpp:11,
from ../libs/boost155/boost/thread/thread_only.hpp:17,
from ../libs/boost155/boost/thread/thread.hpp:12,
from ../libs/boost155/boost/thread.hpp:13,
from myprogram.h:2,
from myprogram.cpp:1:

最佳答案

您正在尝试复制互斥量。这是不可能的。

你从中触发它

 from myprogram.h:2,
from myprogram.cpp:1:

所以,这就是您的代码。可能,如果它在您的代码中不明确,您有一个 shared_mutex 作为类中的成员,并且这个类被复制,作为代码其余部分的一部分。

例如:

struct MyClass {
boost::shared_mutex sm;
};

std::vector<MyClass> v;
// etc.

vector 将在许多操作期间复制和移动其元素,这会触发互斥锁复制。

背景:

关于c++ - 错误:使用已删除的函数 boost::shared_mutex::shared_mutex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33630140/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com