私は、複数のスレッドによって読み書きされるエラーステータスブール値を持っています。最初はtrueに設定され、操作が失敗した場合はfalseに設定する必要があります。ビット単位のANDとstd :: atomic <bool>
私はビット単位を使用していたなどので:
std::atomic<bool> status;
status &= func1();
status &= func2();
しかしoperator&=
はstd::atomic<bool>
とbool
の間で許可されていません。
私は同じ結果を得るために回避策としてstd::atomic<int>
を使用することができましたが、私はバグを導入する可能性があると心配しています。
オペレータ&を使用する方法がありますか、または使用可能な構文のみがfunc1()/ func2()の戻り値をチェックし、ステータスをfalseにしてください。
'func1'の呼び出し中に' status'が変化する可能性を考慮しない計画です –