结构体中含有mutex linux编译时报错use of deleted function
时间: 2023-02-09 07:06:28 浏览: 134
结构体改错
你好!
结构体中含有mutex,编译时报错 "use of deleted function" 的原因可能是你在结构体中使用了mutex,但是没有正确地包含mutex头文件。
在使用mutex之前,你需要在你的代码中包含以下头文件:
```
#include <mutex>
```
这应该解决你的编译错误。
此外,你还可能需要使用 std::lock_guard 来保护你的临界区。这是一个 RAII 类,在构造函数中获取互斥体,在析构函数中释放互斥体,从而避免忘记释放互斥体而导致死锁的风险。你可以这样使用 std::lock_guard:
```
#include <mutex>
#include <iostream>
int main()
{
std::mutex m;
{
std::lock_guard<std::mutex> lock(m);
std::cout << "Hello, world!\n";
}
return 0;
}
```
希望这能帮到你!
阅读全文