問題タブ [stdatomic]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - タイプがIntegralでない場合、std::atomicで基本的な操作を実行する方法は?
正確に言うと、double を別の double で増やし、それをスレッドセーフにしたいだけです。実行速度が劇的に低下するため、そのためにミューテックスを使用したくありません。
c++ - std::atomic 変数は「通常の」構文または「ロード」と「ストア」を使用する必要がありますか?
たとえば、アトミック変数がある場合、
読み取りと書き込みを実行したい場合は、「通常の」構文を使用できます。たとえば、
明示的関数load
とstore
メンバー関数も使用できます。
Andrei Alexandrescu や Anthony Williams のような人々が明示的な形式load
とstore
形式のみを使用することを推奨しているのを見てきました。おそらく、「通常の」形式では変数がアトミックであることを強調していないためです。これは、ハンガリーの記譜法の一種のように思えます。アトミックを読み書きするときに使用する構文に関する新しい規則はありますか?
c++ - std::atomicはclangでサポートされていませんか?
std::atomic を clang で使用しようとしています。ただし、ヘッダー ファイルのアトミック () をインクルードしようとすると、#include <atomic>
「アトミックが見つかりません」というメッセージが表示されます。std=c++11 -stdlib=libc++
コンパイル中に - を含めていることに注意してください。私は何が欠けていますか?
私が使用しているclangのバージョンは3.2です。
c++ - C++ 11 未定義の `__atomic_store_16' への参照
次のコードはリンクに失敗します:
次のエラーが発生します。
unsigned long-s を int までのサイズのものに置き換えると、問題なくコンパイルされます。g++ 4.7.2 を使用。それがなぜなのか分かりますか?
コマンドでコンパイル:
c++ - 明示的なアトミック ロード/ストアと通常の operator= および operator T の違いは何ですか?
次の 2 つのバリアントを検討してください。
と
ドキュメントから、2番目のものは完全にアトミックであることがわかりますが、いつどれを使用する必要があり、どのような違いが詳細にあるのかわかりません。