/home/admin/Developments/HIK Inspire V2.0/Client/Common/src/writing/module/ty/AbstractReceiver.h:59: error: use of deleted function ‘std::atomic<long long int>::atomic(const std::atomic<long long int>&)’ std::atomic<SwCodeId> m_codeId=0; ^
时间: 2024-02-02 14:02:37 浏览: 115
Particle_swarm_optimization_developments_applicati_人工智能/神经网络/深度学习_matlab_
这个错误提示是因为程序中使用了 `std::atomic` 类型的变量 `m_codeId`,但是 `std::atomic` 类型的对象是不可复制的,编译器在编译时会调用 `std::atomic` 类型的复制构造函数,但是该复制构造函数被删除了,从而导致编译错误。
解决这个问题的方法有两种:
1. 使用 `std::atomic` 类型的移动构造函数来替代复制构造函数。例如:
```
std::atomic<SwCodeId> m_codeId = std::atomic<SwCodeId>(0);
```
2. 使用 `std::atomic` 提供的 `load` 和 `store` 成员函数来对 `m_codeId` 进行读写操作。例如:
```
std::atomic<SwCodeId> m_codeId;
// 写入操作
m_codeId.store(0);
// 读取操作
SwCodeId codeId = m_codeId.load();
```
这两种方法都可以避免调用 `std::atomic` 类型的复制构造函数,从而解决编译错误。
阅读全文