[英]Error: use of deleted function ‘std::atomic<bool>::atomic(const std::atomic<bool>&)’?
這是我的班級結構/設置
class A {
public:
std::atomic_bool isStarted();
...
private:
std::atomic_bool started;
}
std::atomic_bool A::isStarted() {
return started;
}
這一切都編譯得很好,但是當我有一個 A 的實例時
並嘗試調用 a.isStarted(),我收到此錯誤
error: use of deleted function ‘std::atomic<bool>::atomic(const std::atomic<bool>&)’
return started;
^~~~~~~
我應該如何重構 isStarted 函數以不調用這個已刪除的函數? 我不明白為什么當我只是返回布爾字段時會調用復制構造函數。
當前版本按值返回atomic_bool
,這將使用刪除的復制構造函數,您可以更改函數以返回對類成員的引用,例如std::atomic_bool& A::isStarted()
來自https://en.cppreference.com/w/cpp/atomic/atomic
std::atomic 既不可復制也不可移動。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.