C++ 11 で 2 つのアトミック変数をアトミックに比較するために使用できる比較演算子を探しています。ここでは、これらのアトミック 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
、アトミック操作ですか?