atomic<bool>
は本質的にアトミックなので冗長ではないでしょうかbool
? 部分的に変更された bool 値を持つことはできないと思います。atomic<bool>
の代わりにを実際に使用する必要があるのはいつですかbool
?
ベストアンサー1
いいえC++ の型は、-something でない限り、「本質的にアトミック」ですstd::atomic*
。これは、標準でそう定められているからです。
実際には、 を操作するために発行される実際のハードウェア命令は、std::atomic<bool>
通常の の命令と同じである場合もそうでない場合もありますbool
が、アトミックであることは、より広範な影響(コンパイラーの並べ替えの制限など)を伴う、より大きな概念です。さらに、一部の操作(否定など)は、アトミック操作でオーバーロードされ、非アトミック変数のネイティブな非アトミックな読み取り、変更、書き込みシーケンスとは明確に異なる命令をハードウェア上に作成します。