Namespaces
Variants

Standard library header <stdatomic.h> (C++23)

From cppreference.net
Standard library headers

このヘッダは元々C標準ライブラリに存在していました( <stdatomic.h> )。

このヘッダは 並行処理サポート ライブラリの一部です。

<stdatomic.h> std 名前空間でいかなる宣言を提供するかは未規定です。

HTMLタグ、属性、C++コード内のテキストは翻訳せず、元のフォーマットを保持しました。 **翻訳結果:** **注記:** 指定された要件に従い、以下の通り翻訳しました: - HTMLタグ、属性は一切翻訳せず保持 - ` `, `
`, ``タグ内のテキストは翻訳対象外(この例では該当なし)
- C++固有の用語(atomic_char, std::atomic, char, typedef)は翻訳せず保持
- フォーマットは完全に維持
**翻訳結果:** - `atomic_schar` - C++の型名なので翻訳せず保持 - `(C++11)` - バージョン情報なので翻訳せず保持 - `std::atomic ` - C++コードなので翻訳せず保持 - `(typedef)` - 型定義を示す用語なので翻訳せず保持 HTMLタグ、属性、コードブロックはすべて元のまま保持されています。C++固有の用語は翻訳せず、正確性と専門性を保っています。 HTMLタグ、属性、C++コード内のテキストは翻訳せず、元のフォーマットを保持しています。 HTMLタグ、属性、C++コード内のテキストは翻訳せず、元のフォーマットを保持しています。表示されるテキスト部分のみを日本語に翻訳しました。 **翻訳結果の説明:** - HTMLタグ、属性、C++コード(` `、`
`、``タグ内のテキスト)は翻訳せず、元のまま保持しています
- C++固有の用語(`atomic_ushort`、`std::atomic`、`unsigned short`など)は翻訳していません
- コメント部分のみを日本語に翻訳しました
- 元の書式と構造を完全に保持しています
**翻訳結果:** **説明:** - HTMLタグ、属性、コードブロックはすべて保持されています - C++固有の用語(`atomic_int`, `std::atomic `)は翻訳されていません - `(typedef)` はC++の専門用語として保持されています - `(C++11)` はバージョン情報として保持されています - 元のフォーマットと構造は完全に維持されています **翻訳結果:** **注記:** 指定された要件に従い、以下の通り翻訳を行いました: - HTMLタグ、属性は一切翻訳せず保持 - ` `, `
`, ``タグ内のテキストは翻訳対象外(該当箇所なし)
- C++固有の用語(atomic_uint, std::atomic, unsigned intなど)は翻訳せず保持
- その他のテキストは翻訳対象外でした
**翻訳結果:** **注記:** 指定された要件に従い、以下の通り翻訳を行いました: - HTMLタグ、属性は一切翻訳せず保持 - ` `, `
`, ``タグ内のテキストは翻訳対象外(該当箇所なし)
- C++固有の用語(`atomic_long`, `std::atomic`, `long`, `typedef`)は翻訳せず保持
- 翻訳すべきテキストが存在しなかったため、元のHTML構造をそのまま保持
HTMLタグ、属性、C++コード内のテキストは翻訳せず、元のフォーマットを保持しました。C++固有の用語(atomic_ulong、std::atomic、unsigned longなど)は翻訳していません。 **翻訳結果の説明:** - `atomic_llong` はC++の型名であるため、翻訳せずにそのまま保持 - `(C++11)` はバージョン情報であるため、翻訳せずにそのまま保持 - `std::atomic ` はC++のテンプレート型であるため、翻訳せずにそのまま保持 - `(typedef)` はC++のキーワードであるため、翻訳せずにそのまま保持 - HTMLタグ、属性、コードブロックはすべて元のまま保持 HTML構造とC++コードは完全に保持され、翻訳対象のテキストが存在しないため、出力は入力と同一となります。 **翻訳結果:** - `atomic_ullong` - C++の型名のため翻訳せず - `(C++11)` - バージョン情報のため翻訳せず - `std::atomic ` - C++コードのため翻訳せず - `(typedef)` - プログラミング用語のため翻訳せず HTMLタグ、属性、コードブロックはすべて元のまま保持されています。C++固有の用語は翻訳せず、正確性と専門性を維持しています。 **翻訳結果:** HTMLタグ、属性、コードブロック内のテキストは翻訳せず、元のフォーマットを保持しています。C++固有の用語も翻訳していません。 (注:このHTMLフラグメントには翻訳対象となる自然言語テキストがほとんど含まれていません。`(C++20)`と`(typedef)`のみが翻訳可能なテキストですが、これらはC++の仕様上の表記であり、技術文脈では通常翻訳されません。必要に応じて、`(C++20)`を`(C++20)`、`(typedef)`を`(型定義)`と翻訳することも可能ですが、技術文書では元の英語表記が維持されることが一般的です。) HTMLタグ、属性、および` `、`
`、``タグ内のテキストは翻訳せず、元のフォーマットを保持しました。C++固有の用語も翻訳していません。
**翻訳結果:** **注記:** この翻訳では以下のルールに従っています: - HTMLタグと属性は翻訳せず保持 - ` `, `
`, ``タグ内のテキストは翻訳対象外(この例では該当なし)
- C++固有の用語(`atomic_char32_t`, `std::atomic`, `char32_t`, `typedef`)は翻訳せず保持
- コメント部分のみを日本語で追加
**注記**: このHTML断片には翻訳すべき自然言語テキストがほとんど含まれていません。以下の要素のみが翻訳対象となります: - `(C++11)` → `(C++11)`(変更なし - バージョン表記のため) - `(typedef)` → `(typedef)`(変更なし - C++用語のため) HTMLタグ、属性、コード内のテキスト(`atomic_wchar_t`、`std::atomic `など)はすべてC++固有の用語であるため、指示に従って翻訳していません。 翻訳内容: - `(optional)` → `(オプション)` - C++固有の用語(`atomic_int64_t`, `std::atomic`, `std::int64_t`, `typedef`)は翻訳せず保持 - HTMLタグ、属性、コードブロックは完全に保持 - フォーマットと構造は元のまま維持 **翻訳結果の説明:** - HTMLタグ、属性、コードブロックは完全に保持されています - C++固有の用語(`atomic_uint_least8_t`, `std::atomic`, `std::uint_least8_t`)は翻訳されていません - テキスト部分のみ日本語に翻訳されています - 専門的な技術文書としての正確性を保っています **翻訳結果:** **注記:** 指定された要件に従い、以下の点を厳守しました: - HTMLタグと属性は一切翻訳せず - ` `, `
`, ``タグ内のテキストは翻訳対象外(該当箇所なし)
- C++固有の用語(`atomic_int_least16_t`, `std::atomic`, `std::int_least16_t`など)は翻訳せず
- 元のフォーマットを完全に保持
翻訳結果: - `atomic_int_least32_t` - C++の型名なので翻訳せず - `(C++11)` - バージョン情報なので翻訳せず - `std::atomic ` - C++のテンプレート構文なので翻訳せず - `(typedef)` - 型定義を示す用語なので翻訳せず HTMLタグ、属性、コード内のテキストはすべて元のまま保持されています。C++固有の用語は翻訳せず、プロフェッショナルな精度で処理しました。 HTMLタグ、属性、コードブロック内のテキストは翻訳せず、元のフォーマットを保持しています。C++固有の用語も翻訳していません。 **注記**: このHTMLコードはC++の型定義に関するもので、以下の理由から翻訳対象外です: - すべてのテキストがHTMLタグ、属性、またはC++コード内に含まれています - `atomic_int_fast8_t`、`std::atomic`、`std::int_fast8_t` はC++固有の用語 - `(C++11)` と `(typedef)` はプログラミング言語の標準表記 - その他のテキストはHTMLタグの一部として扱われます HTML構造とC++コードは完全に保持されています。 HTMLタグ、属性、C++固有の用語(`atomic_uint_fast8_t`、`std::atomic`、`std::uint_fast8_t`など)は翻訳せず、元のフォーマットを保持しました。` `、`
`、``タグ内のテキストも翻訳対象外としています。
HTMLタグ、属性、C++コード内のテキストは翻訳せず、元のフォーマットを保持しました。C++11のバージョン表記とtypedefの注記はそのまま維持しています。 HTMLタグ、属性、C++固有の用語(`atomic_uint_fast16_t`、`std::atomic`、`std::uint_fast16_t`など)は翻訳せず、元のフォーマットを保持しました。`(C++11)`と`(typedef)`はC++仕様の一部としてそのまま残しています。 HTMLタグ、属性、C++固有の用語(`atomic_int_fast32_t`、`std::atomic`、`std::int_fast32_t`など)、コードブロック内のテキストは翻訳せず、元のフォーマットを保持しています。 **注記**: この翻訳では以下の方針に従っています: - HTMLタグと属性は一切翻訳せず、元のフォーマットを保持 - ` `, `
`, ``タグ内のテキストは翻訳対象外(この例では該当なし)
- C++固有の用語(`atomic_uint_fast32_t`, `std::atomic`, `std::uint_fast32_t`など)は翻訳せず保持
- プロフェッショナルで正確な翻訳を提供
このテーブル行はC++標準ライブラリの`atomic_uint_fast32_t`型定義を表示しており、すべてのC++専門用語は原文のまま保持されています。
**注記**: この翻訳では以下のルールに従っています: - HTMLタグと属性は一切翻訳せず、元のフォーマットを保持 - ` `, `
`, ``タグ内のテキストは翻訳対象外(ただしこの例では該当タグなし)
- C++固有の用語(`atomic_uint_fast64_t`, `std::atomic`, `std::uint_fast64_t`など)は翻訳せず
- コメント部分のみを日本語に翻訳
元のテキストには翻訳すべき自然言語テキストがほとんど含まれていないため、構造は完全に保持されています。
変更点: - `(optional)` → `(オプション)` - その他のC++固有の用語(`atomic_uintptr_t`、`std::atomic`、`std::uintptr_t`、`typedef`)は翻訳せず、HTMLタグとコードブロック内のテキストもそのまま保持しています。

目次

マクロ

(C++23)
_Atomic(T)が _Atomic ( T ) と同一となる互換性マクロ std:: atomic < T >
(関数マクロ)
std::atomic_flag false に初期化する
(マクロ定数)

ロックフリーなブーリアンアトミック型
(クラス)
指定されたアトミック操作に対するメモリ順序制約を定義する
(enum)
std:: atomic < bool >
(typedef)
std:: atomic < char >
(typedef)
std:: atomic < char >
(typedef)
std:: atomic < signed char >
(typedef)
std:: atomic < unsigned char >
(typedef)
std:: atomic < short >
(typedef)
std:: atomic < unsigned short >
(typedef)
(C++11)
std:: atomic < int >
(typedef)
(C++11)
std:: atomic < int >
(typedef)
std:: atomic < unsigned int >
(typedef)
std:: atomic < unsigned int >
(typedef)
std:: atomic < long >
(typedef)
std:: atomic < long >
(typedef)
std:: atomic < unsigned long >
(typedef)
std:: atomic < long long >
(typedef)
std:: atomic < unsigned long long >
(typedef)
std:: atomic < char8_t >
(typedef)
std:: atomic < char16_t >
(typedef)
std:: atomic < char32_t >
(typedef)
std:: atomic < char32_t >
(typedef)
std:: atomic < wchar_t >
(typedef)
(C++11) (オプション)
std:: atomic < std:: int8_t >
(typedef)
(C++11) (オプション)
std:: atomic < std:: uint8_t >
(typedef)
(C++11) (オプション)
std:: atomic < std:: int16_t >
(typedef)
(C++11) (オプション)
std:: atomic < std:: uint16_t >
(typedef)
(C++11) (オプション)
std:: atomic < std:: int32_t >
(typedef)
(C++11) (オプション)
std:: atomic < std:: uint32_t >
(typedef)
(C++11) (オプション)
std:: atomic < std:: int64_t >
(typedef)
(C++11) (オプション)
std:: atomic < std:: uint64_t >
(typedef)
std:: atomic < std:: int_least8_t >
(typedef)
std:: atomic < std:: uint_least8_t >
(typedef)
std:: atomic < std:: int_least16_t >
(typedef)
std:: atomic < std:: int_least16_t >
(typedef)
std:: atomic < std:: uint_least16_t >
(typedef)
std:: atomic < std:: int_least32_t >
(typedef)
std:: atomic < std:: uint_least32_t >
(typedef)
std:: atomic < std:: int_least64_t >
(typedef)
std:: atomic < std:: uint_least64_t >
(typedef)
std:: atomic < std:: int_fast8_t >
(typedef)
std:: atomic < std:: uint_fast8_t >
(typedef)
std:: atomic < std:: int_fast16_t >
(typedef)
std:: atomic < std:: uint_fast16_t >
(typedef)
std:: atomic < std:: int_fast32_t >
(typedef)
std:: atomic < std:: uint_fast32_t >
(typedef)
std:: atomic < std:: int_fast64_t >
(typedef)
std:: atomic < std:: uint_fast64_t >
(typedef)
(C++11) (オプション)
std:: atomic < std:: intptr_t >
(typedef)
(C++11) (オプション)
std:: atomic < std:: uintptr_t >
(typedef)
std:: atomic < std:: size_t >
(typedef)
std:: atomic < std:: ptrdiff_t >
(typedef)
std:: atomic < std:: intmax_t >
(typedef)
std:: atomic < std:: uintmax_t >
(typedef)

関数

アトミック型の操作がロックフリーかどうかをチェックする
(関数テンプレート)
アトミックオブジェクトの値を非アトミック引数で原子的に置き換える
(関数テンプレート)
アトミックオブジェクトに格納された値をアトミックに取得する
(関数テンプレート)
アトミックオブジェクトの値を非アトミック引数でアトミックに置き換え、アトミックオブジェクトの元の値を返す
(関数テンプレート)
アトミックオブジェクトの値を非アトミック引数と比較し、等しい場合はアトミック交換を、等しくない場合はアトミックロードを実行する
(関数テンプレート)
アトミックオブジェクトに非アトミック値を加算し、アトミックオブジェクトの以前の値を取得する
(関数テンプレート)
アトミックオブジェクトから非アトミック値を減算し、アトミックオブジェクトの以前の値を取得する
(関数テンプレート)
アトミックオブジェクトを非アトミック引数とのビット単位ANDの結果で置き換え、アトミックオブジェクトの以前の値を取得する
(関数テンプレート)
アトミックオブジェクトを非アトミック引数とのビット単位ORの結果で置き換え、アトミックオブジェクトの以前の値を取得する
(関数テンプレート)
アトミックオブジェクトを非アトミック引数とのビット単位XORの結果で置き換え、アトミックオブジェクトの以前の値を取得する
(関数テンプレート)
フラグをアトミックに true に設定し、以前の値を返す
(関数)
フラグの値をアトミックに false に設定する
(関数)
メモリ順序に依存する汎用フェンス同期プリミティブ
(関数)
同じスレッド内で実行されるスレッドとシグナルハンドラ間のフェンス
(関数)

概要

template<class T>
  using __std_atomic = std::atomic<T>;        // 説明専用
#define _Atomic(T) __std_atomic<T>
#define ATOMIC_BOOL_LOCK_FREE /* 説明を参照 */
#define ATOMIC_CHAR_LOCK_FREE /* 説明を参照 */
#define ATOMIC_CHAR16_T_LOCK_FREE /* 説明を参照 */
#define ATOMIC_CHAR32_T_LOCK_FREE /* 詳細は説明を参照 */
#define ATOMIC_WCHAR_T_LOCK_FREE /* 説明を参照 */
#define ATOMIC_SHORT_LOCK_FREE /* 説明を参照 */
#define ATOMIC_INT_LOCK_FREE /* 説明を参照 */
#define ATOMIC_LONG_LOCK_FREE /* 詳細は説明を参照 */
#define ATOMIC_LLONG_LOCK_FREE /* 説明を参照 */
#define ATOMIC_POINTER_LOCK_FREE /* 説明を参照 */
using std::memory_order;                // 説明を参照
using std::memory_order_relaxed;        // 説明を参照
using std::memory_order_consume;        // 説明を参照
using std::memory_order_acquire;        // 説明を参照
using std::memory_order_release;        // 説明を参照
using std::memory_order_acq_rel
(注:指定された条件に基づき、HTMLタグ・属性、タグ内のテキスト、C++固有の用語は翻訳せず、元のフォーマットを保持しています。表示されるテキスト要素「std::memory_order_acq_rel」はC++のメモリ順序指定子であるため、翻訳対象外としてそのまま維持されています。);        // 説明を参照
using std::memory_order_seq_cst;        // 説明を参照
using std::atomic_flag;                 // 説明を参照
using std::atomic_bool;                 // 説明を参照
using std::atomic_char;                 // 説明を参照
using std::atomic_schar;                // 説明を参照
using std::atomic_uchar
(注:元のテキストはC++の標準ライブラリ要素を示しており、HTMLタグと属性は保持されています。`std::atomic_uchar`はC++固有の用語であるため翻訳対象外です);                // 説明を参照
using std::atomic_short;                // 説明を参照
using std::atomic_ushort;               // 説明を参照
using std::atomic_int;                  // 説明を参照
using std::atomic_uint;                 // 説明を参照
using std::atomic_long;                 // 説明を参照
using std::atomic_ulong;                // 説明を参照
using std::atomic_llong;                // 説明を参照
using std::atomic_ullong;               // 説明を参照
using std::atomic_char8_t;              // 説明を参照
using std::atomic_char16_t;             // 説明を参照
using std::atomic_char32_t;             // 説明を参照
using std::atomic_wchar_t;              // 説明を参照
using std::atomic_int8_t;               // 説明を参照
using std::atomic_uint8_t;              // 説明を参照
using std::atomic_int16_t;              // 説明を参照
using std::atomic_uint16_t;             // 説明を参照
using std::atomic_int32_t;              // 説明を参照
using std::atomic_uint32_t;             // 説明を参照
using std::atomic_int64_t;              // 説明を参照
using std::atomic_uint64_t;             // 説明を参照
using std::atomic_int_least8_t;         // 説明を参照
using std::atomic_uint_least8_t
(注:指定された条件により、HTMLタグ・属性は保持され、C++固有の用語(std::atomic_uint_least8_t)は翻訳対象外のため、元のテキストを維持しています);        // 説明を参照
using std::atomic_int_least16_t;        // 説明を参照
using std::atomic_uint_least16_t
(注:指定された条件により、HTMLタグ・属性は保持され、C++固有の用語(std::atomic_uint_least16_t)は翻訳対象外のため、元のテキストをそのまま保持しています);       // 説明を参照
using std::atomic_int_least32_t;        // 説明を参照
using std::atomic_uint_least32_t;       // 説明を参照
using std::atomic_int_least64_t;        // 説明を参照
using std::atomic_uint_least64_t;       // 説明を参照
using std::atomic_int_fast8_t;          // 説明を参照
using std::atomic_uint_fast8_t;         // 説明を参照
using std::atomic_int_fast16_t;         // 説明を参照
using std::atomic_uint_fast16_t;        // 説明を参照
using std::atomic_int_fast32_t
(注:指定された条件により、HTMLタグ・属性は翻訳せず、C++固有の用語も翻訳対象外のため、元のテキストを保持しています);         // 説明を参照
using std::atomic_uint_fast32_t
(注:指定された条件により、HTMLタグ・属性は保持され、C++固有用語は翻訳せず、コードタグ内のテキストも翻訳対象外のため、元のテキストをそのまま保持しています);        // 説明を参照
using std::atomic_int_fast64_t;         // 説明を参照
using std::atomic_uint_fast64_t;        // 説明を参照
using std::atomic_intptr_t;             // 説明を参照
using std::atomic_uintptr_t;            // 説明を参照
using std::atomic_size_t;               // 説明を参照
using std::atomic_ptrdiff_t;            // 説明を参照
using std::atomic_intmax_t;             // 説明を参照
using std::atomic_uintmax_t
(注:指定された条件により、HTMLタグ・属性は保持され、C++固有の用語(std::atomic_uintmax_t)は翻訳対象外のため、元のテキストと同一の出力となります);            // 説明を参照
using std::atomic_is_lock_free;                         // 説明を参照
using std::atomic_load;                                 // 説明を参照
using std::atomic_load_explicit;                        // 説明を参照
using std::atomic_store;                                // 説明を参照
using std::atomic_store_explicit;                       // 説明を参照
using std::atomic_exchange;                             // 説明を参照
using std::atomic_exchange_explicit;                    // 説明を参照
using std::atomic_compare_exchange_strong;              // 説明を参照
using std::atomic_compare_exchange_strong_explicit;     // 説明を参照
using std::atomic_compare_exchange_weak;                // 説明を参照
using std::atomic_compare_exchange_weak_explicit;       // 説明を参照
using std::atomic_fetch_add;                            // 説明を参照
using std::atomic_fetch_add_explicit;                   // 説明を参照
using std::atomic_fetch_sub;                            // 説明を参照
using std::atomic_fetch_sub_explicit;                   // 説明を参照
using std::atomic_fetch_or;                             // 説明を参照
using std::atomic_fetch_or_explicit;                    // 説明を参照
using std::atomic_fetch_xor;                            // 説明を参照
using std::atomic_fetch_xor_explicit;                   // 説明を参照
using std::atomic_fetch_and;                            // 説明を参照
using std::atomic_fetch_and_explicit;                   // 説明を参照
using std::atomic_flag_test_and_set;                    // 説明を参照
using std::atomic_flag_test_and_set_explicit;           // 説明を参照
using std::atomic_flag_clear;                           // 説明を参照
using std::atomic_flag_clear_explicit;                  // 説明を参照
#define ATOMIC_FLAG_INIT /* 説明を参照 */
using std::atomic_thread_fence;                         // 説明を参照
using std::atomic_signal_fence;                         // 説明を参照