我正在寻找一个比较器运算符,可用于在 C++11 下原子地比较两个原子变量。在这里,我不想交换存储在这些原子 obj 下的值,所以我对 compare_and_swap 函数不感兴趣。请参考以下示例:
std::atomic<uint32_t> readIdx{0};
std::atomic<uint32_t> writeIdx{0};
while(writeIdx + 1 == readIdx) <<<<------------------
{
std::this_thread::yield();
}
我想要的只是使用箭头线表示的代码是原子的。是否可以?如果不是,是否writeIdx == readIdx
是原子操作?