gpt4 book ai didi

c++ - 比较两个原子整数 Qt5

转载 作者:太空狗 更新时间:2023-10-29 21:39:43 24 4
gpt4 key购买 nike

在 Qt5 中,QAtomicInt 上的一些操作已经消失,包括运算符==。

有谁知道我如何比较 Qt5 中的两个 QAtomicInts?旧代码是这样的:

qAtomicInt a;
qAtomicInt b;
if(a == b)
//Do something

据我了解文档 ( http://doc.qt.io/qt-5/sourcebreaks.html ) 我可以这样做:

qAtomicInt a;
qAtomicInt b;
if(a.load() == b.load())
//Do something

但是如果我这样做,比较操作是否仍然是原子的?在此操作过程中,正在比较的值是否会发生变化?

最佳答案

考虑到 Qt5 中的更改,您的代码似乎是正确的。您可以使用 load()loadAcquire() 来比较 QAtomicInt

尽管在您比较

中的整数时,这些操作本身被标记为原子操作
if(a.load() == b.load())

QAtomicInts 中的值可能会改变。

Operator== 在 Qt4 中可用

http://doc.qt.io/qt-4.8/qatomicint.html#operator-eq-eq

顺便说一下,在文档中没有标记为原子。

关于c++ - 比较两个原子整数 Qt5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32270000/

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