Namespaces
Variants

Atomic operations library

From cppreference.net
< c

コンパイラによってマクロ定数 __STDC_NO_ATOMICS__ (C11) が定義されている場合、ヘッダ <stdatomic.h> 、キーワード _Atomic およびここにリストされているすべての名前は提供されません。

目次

翻訳の説明: - 「Contents」を「目次」に翻訳しました - C++関連の用語(Types, Macros, Functions, References, See also)は原文のまま保持しました - HTMLタグ、属性、クラス名、IDなどは一切変更していません - 番号部分やリンク構造も完全に保持しています

ヘッダーで定義 <stdatomic.h>
メモリ順序制約を定義する
(列挙型)
ロックフリーなアトミックブーリアンフラグ
(構造体)

マクロ

ヘッダで定義 <stdatomic.h>
指定されたアトミック型がロックフリーであることを示す
(マクロ定数)
新しい atomic_flag を初期化する
(マクロ定数)
(C11) (C17で非推奨) (C23で削除)
新しいアトミックオブジェクトを初期化する
(関数マクロ)
memory_order_consume の依存関係チェインを解除する
(関数マクロ)

関数

ヘッダで定義 <stdatomic.h>
atomic_flagをtrueに設定し、以前の値を返す
(関数)
atomic_flagをfalseに設定する
(関数)
既存のアトミックオブジェクトを初期化する
(関数)
アトミックオブジェクトがロックフリーかどうかを示す
(関数)
アトミックオブジェクトに値を格納する
(関数)
アトミックオブジェクトから値を読み取る
(関数)
値とアトミックオブジェクトの値を交換する
(関数)
古い値が期待値と一致する場合、値とアトミックオブジェクトを交換し、それ以外の場合は古い値を読み取る
(関数)
アトミック加算
(関数)
アトミック減算
(関数)
アトミックビット単位OR
(関数)
アトミックビット単位排他的OR
(関数)
アトミックビット単位AND
(関数)
汎用メモリ順序依存フェンス同期プリミティブ
(関数)
スレッドと同一スレッドで実行されるシグナルハンドラ間のフェンス
(関数)

標準ライブラリは コア言語アトミック型 の利便性のためのtypedefを提供します。

**説明:** - HTMLタグと属性はすべてそのまま保持されています - ` `タグ内の`atomic_bool`はC++専門用語のため翻訳対象外 - ` `タグ内の`_Atomic _Bool`はコードとして扱われているため翻訳対象外 - テーブル構造と書式設定は完全に保持されています **翻訳結果:** **説明:** - ` `タグ内の`atomic_char`はC++固有の用語のため翻訳せず - ` `内の`_Atomic`と`char`はコードとして扱われるため翻訳せず - HTMLタグ、属性、クラス名はすべて保持 - 元のフォーマットと構造を完全に維持 HTMLタグ、属性、および タグ内のテキストは翻訳せず、元のフォーマットを保持しました。C++固有の用語も翻訳していません。 **翻訳結果:** **説明:** - HTMLタグと属性はすべて保持されています - ` `タグ内の`atomic_uchar`はC++用語のため翻訳対象外 - ` `内の`_Atomic`、`unsigned`、`char`はC++キーワードのため翻訳対象外 - 元のフォーマットと構造が完全に保持されています **翻訳結果:** **説明:** - ` `タグ内の`atomic_short`はC++の型名であるため、翻訳対象外 - ` `内の`_Atomic`と`short`はC言語のキーワードであるため、翻訳対象外 - HTMLタグと属性はすべてそのまま保持 - フォーマットと構造は完全に維持 **翻訳結果:** **説明:** - HTMLタグ、属性、` `タグ内のテキストは翻訳せず保持 - C++固有の用語(`atomic_ushort`, `_Atomic`, `unsigned`, `short`)は翻訳せず保持 - 元のフォーマットと構造を完全に維持 **翻訳結果:** **説明:** - ` `タグ内の`atomic_uint`はC++の型名であるため翻訳せず - ` `内の`_Atomic`、`unsigned`、`int`はC++のキーワードであるため翻訳せず - HTMLタグ、属性、構造は完全に保持 - フォーマットとインデントは元のまま維持 **説明:** - HTMLタグと属性はすべて元のまま保持されています - ` `タグ内の`atomic_long`はC++の型名なので翻訳対象外 - ` `内の`_Atomic`と`long`はC言語のキーワードなので翻訳対象外 - 構造とフォーマットは完全に維持されています **翻訳結果:** **説明:** - HTMLタグ、属性は一切翻訳せず保持 - ` `タグ内の`atomic_ulong`はC++用語のため翻訳対象外 - ` `内の`_Atomic`、`unsigned`、`long`はC++キーワードのため翻訳対象外 - 元のフォーマットと構造を完全に保持 **翻訳結果:** **説明:** - ` `タグ内の`atomic_llong`はC++固有の用語のため翻訳対象外 - ` `内の`_Atomic`、`long`、`long`はC++キーワードのため翻訳対象外 - HTMLタグ、属性、クラス名は全て保持 - 元のフォーマットと構造を完全に維持 **翻訳結果:** **説明:** - HTMLタグ、属性、および` `タグ内のテキストは翻訳されていません - C++固有の用語(`atomic_ullong`, `_Atomic`, `unsigned`, `long`)は原文のまま保持されています - 元のフォーマットと構造は完全に維持されています **翻訳結果:** **説明:** - HTMLタグと属性はすべて保持されています - ` `タグ内の`atomic_char8_t`と` `内の`_Atomic char8_t`はC++固有の用語のため翻訳していません - その他のテキストは翻訳対象外のため、元のまま保持されています **説明:** - HTMLタグと属性はすべて元のまま保持されています - ` `タグ内の`atomic_char16_t`はC++専門用語のため翻訳対象外 - ` `タグ内の`_Atomic char16_t`はコードブロック内のため翻訳対象外 - 構造とフォーマットは完全に維持されています **翻訳結果:** **説明:** - HTMLタグ(` `, ` **翻訳結果:** **説明:** - HTMLタグ、属性はすべて保持 - ` `タグ内の`atomic_wchar_t`はC++用語のため翻訳せず - ` `内の`_Atomic`と`wchar_t`はC++キーワードのため翻訳せず - 構造とフォーマットは完全に保持 **翻訳結果:** **説明:** - HTMLタグ、属性は一切翻訳せず保持 - ` `タグ内の`atomic_int_least8_t`はC++用語のため翻訳せず - ` `内の`int_least8_t`もC++用語のため翻訳せず - その他のテキスト要素がないため、翻訳対象となるテキストはありませんでした **翻訳結果:** **注記:** - HTMLタグ、属性、 タグ内のテキストは翻訳対象外として保持 - C++固有の用語(atomic_uint_least8_t, _Atomic, uint_least8_t)は翻訳せず保持 - 元のフォーマットと構造を完全に維持 **翻訳結果:** **説明:** - ` `タグ内の`atomic_int_least16_t`と` `内の`int_least16_t`はC++の型名であるため、翻訳せずに保持しました - `_Atomic`はC言語のキーワードであるため、翻訳せずに保持しました - HTMLタグ、属性、クラス名はすべて元のまま保持されています - フォーマットと構造は完全に保存されています **説明:** - HTMLタグ、属性、および` `タグ内のテキストは翻訳していません - C++固有の用語(`atomic_uint_least16_t`、`_Atomic`、`uint_least16_t`)は原文のまま保持しています - 元の書式と構造を完全に維持しています **翻訳結果:** **説明:** - HTMLタグ、属性はすべて保持 - ` `タグ内の`atomic_uint_least32_t`はC++用語のため非翻訳 - ` `内の`uint_least32_t`はC++用語のため非翻訳 - その他のテキスト要素がないため、翻訳対象となるテキストはありません **翻訳結果:** **説明:** - ` `タグ内の`atomic_int_least64_t`はC++の型名のため翻訳対象外 - ` `内の`_Atomic`と`int_least64_t`はC言語のキーワードと型名のため翻訳対象外 - HTMLタグ、属性、クラス名は全て保持 - フォーマットと構造は完全に維持 **翻訳結果:** **注記:** - HTMLタグ、属性、および` `タグ内のC++専門用語は翻訳対象外としました - 元のフォーマットと構造を完全に保持しています - C++の型名(`atomic_uint_least64_t`、`_Atomic`、`uint_least64_t`)は翻訳せずそのまま維持しています **翻訳結果:** **説明:** - HTMLタグと属性は一切翻訳せず、元のフォーマットを保持しました - ` `タグ内の`atomic_int_fast8_t`はC++の型名のため翻訳対象外 - ` `内の`int_fast8_t`もC++の型名のため翻訳対象外 - `_Atomic`はC言語のキーワードのため翻訳対象外 - 翻訳すべきテキストが存在しないため、出力は入力と同じになります **翻訳結果:** **説明:** - HTMLタグ、属性はすべて保持 - ` `タグ内の`atomic_uint_fast8_t`はC++用語のため非翻訳 - ` `内の`uint_fast8_t`はC++用語のため非翻訳 - その他のテキスト要素がないため、翻訳対象となるテキストはありません **翻訳結果:** **説明:** - ` `タグ内の`atomic_int_fast16_t`はC++の型名のため翻訳対象外 - ` `内の`int_fast16_t`はC++の型名のため翻訳対象外 - `_Atomic`はC言語のキーワードのため翻訳対象外 - HTMLタグ、属性、クラス名は全て保持 - フォーマットと構造は完全に維持 **翻訳結果:** **説明:** - HTMLタグ、属性はすべて保持 - ` `タグ内の`atomic_uint_fast16_t`はC++用語のため非翻訳 - ` `内の`uint_fast16_t`はC++用語のため非翻訳 - その他のテキスト要素がないため、翻訳対象となるテキストはありません **翻訳結果:** **説明:** - ` `タグ内の`atomic_int_fast32_t`はC++の型名のため翻訳せず - ` `内の`_Atomic`と`int_fast32_t`はC言語のキーワードと型名のため翻訳せず - HTMLタグ、属性、クラス名はすべて保持 - フォーマットと構造は完全に維持 **翻訳結果:** **説明:** - HTMLタグ、属性は一切翻訳せず保持 - ` `タグ内の`atomic_uint_fast32_t`はC++用語のため翻訳せず - ` `内の`_Atomic`と`uint_fast32_t`はC++用語のため翻訳せず - 元のフォーマットと構造を完全に保持 **翻訳結果:** **説明:** - HTMLタグと属性はすべて保持されています - ` `タグ内の`atomic_int_fast64_t`は翻訳対象外 - ` `内の`int_fast64_t`はC++固有の用語のため翻訳対象外 - その他のテキスト要素がないため、翻訳すべきテキストはありません **翻訳結果:** **注記:** - HTMLタグ、属性、 タグ内のテキストは翻訳対象外として保持しました - C++固有の用語(atomic_uint_fast64_t, _Atomic, uint_fast64_t)は翻訳せず保持しました - このテキストはC++の型定義に関する技術文書の一部であるため、専門性を保った翻訳としました **翻訳結果:** **説明:** - HTMLタグ、属性はすべて保持 - ` `タグ内の`atomic_intptr_t`はC++用語のため非翻訳 - ` `内の`_Atomic`と`intptr_t`はC++用語のため非翻訳 - すべての構造とフォーマットが完全に保持されています **翻訳結果:** **説明:** - HTMLタグと属性はすべて保持されています - ` `タグ内の`atomic_uintptr_t`は翻訳対象外 - ` `内のC++用語`_Atomic`と`uintptr_t`は翻訳対象外 - 構造とフォーマットは完全に保持されています **翻訳結果:** **説明:** - HTMLタグ、属性はすべて保持されています - ` `タグ内の`atomic_size_t`は翻訳対象外 - ` `内の`_Atomic`と`size_t`はC++用語のため翻訳対象外 - 構造とフォーマットは完全に保持されています HTMLタグ、属性、 タグ内のテキスト、C++固有の用語は翻訳せず、元のフォーマットを保持しました。 **日本語訳:** **説明:** - HTMLタグ、属性、コードブロック内のテキストは翻訳せず、元のまま保持しています - `atomic_intmax_t`、`_Atomic`、`intmax_t` はC++の専門用語のため翻訳対象外 - 構造とフォーマットは完全に維持されています **翻訳結果:** HTMLタグ、属性、` `タグ内のテキスト、C++固有の用語は翻訳せず、元のフォーマットを保持しました。
型定義名 完全な型名
atomic_bool _Atomic _Bool
atomic_char _Atomic char
atomic_char _Atomic char
atomic_schar _Atomic signed char
atomic_uchar _Atomic unsigned char
atomic_uchar _Atomic unsigned char
atomic_short _Atomic short
atomic_short _Atomic short
atomic_ushort _Atomic unsigned short
atomic_ushort _Atomic unsigned short
atomic_int _Atomic int
atomic_uint _Atomic unsigned int
atomic_uint _Atomic unsigned int
atomic_long _Atomic long
atomic_ulong _Atomic unsigned long
atomic_ulong _Atomic unsigned long
atomic_llong _Atomic long long
atomic_llong _Atomic long long
atomic_ullong _Atomic unsigned long long
atomic_ullong _Atomic unsigned long long
atomic_char8_t (C23) _Atomic char8_t
atomic_char8_t (C23) _Atomic char8_t
atomic_char16_t _Atomic char16_t
atomic_char32_t _Atomic char32_t
atomic_char32_t _Atomic char32_t
`, ` `, ` `など)とその属性は翻訳せず、元のまま保持しています - ` `タグ内の`atomic_char32_t`と` `内の`_Atomic char32_t`はC++固有の用語であるため翻訳していません - 元のフォーマットと構造は完全に保持されています
atomic_wchar_t _Atomic wchar_t
atomic_wchar_t _Atomic wchar_t
atomic_int_least8_t _Atomic int_least8_t
atomic_int_least8_t _Atomic int_least8_t
atomic_uint_least8_t _Atomic uint_least8_t
atomic_uint_least8_t _Atomic uint_least8_t
atomic_int_least16_t _Atomic int_least16_t
atomic_int_least16_t _Atomic int_least16_t
atomic_uint_least16_t _Atomic uint_least16_t
atomic_int_least32_t _Atomic int_least32_t
atomic_uint_least32_t _Atomic uint_least32_t
atomic_uint_least32_t _Atomic uint_least32_t
atomic_int_least64_t _Atomic int_least64_t
atomic_int_least64_t _Atomic int_least64_t
atomic_uint_least64_t _Atomic uint_least64_t
atomic_uint_least64_t _Atomic uint_least64_t
atomic_int_fast8_t _Atomic int_fast8_t
atomic_int_fast8_t _Atomic int_fast8_t
atomic_uint_fast8_t _Atomic uint_fast8_t
atomic_uint_fast8_t _Atomic uint_fast8_t
atomic_int_fast16_t _Atomic int_fast16_t
atomic_int_fast16_t _Atomic int_fast16_t
atomic_uint_fast16_t _Atomic uint_fast16_t
atomic_uint_fast16_t _Atomic uint_fast16_t
atomic_int_fast32_t _Atomic int_fast32_t
atomic_int_fast32_t _Atomic int_fast32_t
atomic_uint_fast32_t _Atomic uint_fast32_t
atomic_uint_fast32_t _Atomic uint_fast32_t
atomic_int_fast64_t _Atomic int_fast64_t
atomic_int_fast64_t _Atomic int_fast64_t
atomic_uint_fast64_t _Atomic uint_fast64_t
atomic_uint_fast64_t _Atomic uint_fast64_t
atomic_intptr_t _Atomic intptr_t
atomic_intptr_t _Atomic intptr_t
atomic_uintptr_t _Atomic uintptr_t
atomic_uintptr_t _Atomic uintptr_t
atomic_size_t _Atomic size_t
atomic_size_t _Atomic size_t
atomic_ptrdiff_t _Atomic ptrdiff_t
atomic_intmax_t _Atomic intmax_t
atomic_intmax_t _Atomic intmax_t
atomic_uintmax_t _Atomic uintmax_t

参考文献

  • C23規格 (ISO/IEC 9899:2024):
  • 7.17 Atomics <stdatomic.h> (p: TBD)
  • 7.31.8 Atomics <stdatomic.h> (p: TBD)
  • C17規格 (ISO/IEC 9899:2018):
  • 7.17 Atomics <stdatomic.h> (p: TBD)
  • 7.31.8 Atomics <stdatomic.h> (p: TBD)
  • C11規格 (ISO/IEC 9899:2011):
  • 7.17 アトミック操作 <stdatomic.h> (p: 273-286)
  • 7.31.8 アトミック操作 <stdatomic.h> (p: 455-456)

関連項目

C++ ドキュメント for アトミック操作ライブラリ