なぜstd::atomicではvolatile修飾子が使われているのですか?
2023-10-02 03:26:11
質問
私が読んだところでは
ハーブ・サッター
と
その他
と思うでしょう。
volatile
と並行プログラミングは、少なくとも C/C++ に関する限り、完全に直交する概念であると思うでしょう。
しかし、GCC では
実装
はすべて
std::atomic
のメンバー関数には
volatile
の修飾子があります。 同じことは、Anthony Williams の
の実装
の
std::atomic
.
それでどうするかというと、私の
atomic<>
という変数が必要なのでしょうか?
volatile
でなければならないのでしょうか?
どのように解決するのですか?
なぜ
volatile
修飾子が使われているのでしょうか?
std::atomic
?
volatileオブジェクトがatomicにもなるように。参照 を参照してください。 :
該当する引用文は
<ブロッククオート関数や演算は volatile オブジェクトを扱うように定義されているので、volatile であるべき変数もアトミックであることができる。ただし、volatile修飾子はアトミックであるために必要なものではありません。
私の
atomic<>
変数は
volatile
でなければならないのでしょうか?
いいえ、アトミックオブジェクトは揮発性である必要はありません。
関連
-
[解決済み】C++ - 解放されるポインタが割り当てられていないエラー
-
[解決済み】C++ - 適切なデフォルトコンストラクタがない [重複]。
-
[解決済み] using namespace std;」はなぜバッドプラクティスだと言われるのですか?
-
[解決済み] なぜテンプレートはヘッダーファイルでしか実装できないのですか?
-
[解決済み] アトミック属性と非アトミック属性の違いは何ですか?
-
[解決済み] なぜ、オブジェクトそのものではなく、ポインタを使用しなければならないのですか?
-
[解決済み] std::move()とは何ですか?また、どのような場合に使用するのですか?
-
[解決済み] volatileキーワードは何に役立つのでしょうか?
-
[解決済み】atomic / volatile / synchronizedの違いは何ですか?
-
[解決済み】C++11で非メンバーのbeginとend関数を使うのはなぜ?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C++でランダムな2倍数を生成する
-
[解決済み】Cygwin Make bash コマンドが見つかりません。
-
[解決済み] error: 'if' の前に unqualified-id を期待した。
-
[解決済み】「corrupted size vs. prev_size」glibc エラーを理解する。
-
[解決済み】「std::operator」で「operator<<」にマッチするものがない。
-
[解決済み】1つ以上の多重定義されたシンボルが見つかる
-
[解決済み】なぜ、サイズ8の初期化されていない値を使用するのでしょうか?
-
[解決済み] to_string は std のメンバーではない、と g++ が言っている (mingw)
-
[解決済み】変数やフィールドがvoid宣言されている
-
[解決済み] 変数サイズのオブジェクトが初期化されないことがある c++