stdatomic.h
Go to the documentation of this file.
// C compatibility header <stdatomic.h> -*- C++ -*-
// Copyright The GNU Toolchain Authors.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 3, or (at your option)
// any later version.
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// Under Section 7 of GPL version 3, you are granted additional
// permissions described in the GCC Runtime Library Exception, version
// 3.1, as published by the Free Software Foundation.
// You should have received a copy of the GNU General Public License and
// a copy of the GCC Runtime Library Exception along with this program;
// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
// <http://www.gnu.org/licenses/>.
/** @file include/stdatomic.h
* This is a Standard C++ Library header.
*/
#ifndef _GLIBCXX_STDATOMIC_H
#define _GLIBCXX_STDATOMIC_H
#define __glibcxx_want_stdatomic_h
#include <bits/version.h>
#ifdef __cpp_lib_stdatomic_h // C++ >= 23
#include <atomic>
#define _Atomic(_Tp) ::std::atomic<_Tp>
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;
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;
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;
#ifdef _GLIBCXX_USE_CHAR8_T
using std::atomic_char8_t;
#endif
using std::atomic_char16_t;
using std::atomic_char32_t;
using std::atomic_wchar_t;
#ifdef _GLIBCXX_USE_C99_STDINT
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;
using std::atomic_int_least16_t;
using 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;
using std::atomic_uint_fast32_t;
using std::atomic_int_fast64_t;
using std::atomic_uint_fast64_t;
#endif
using std::atomic_intptr_t;
using std::atomic_uintptr_t;
using std::atomic_size_t;
using std::atomic_ptrdiff_t;
#ifdef _GLIBCXX_USE_C99_STDINT
using std::atomic_intmax_t;
using std::atomic_uintmax_t;
#endif
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;
using std::atomic_thread_fence;
using std::atomic_signal_fence;
#elif defined _GLIBCXX_CLANG
# include_next <stdatomic.h>
#endif // __cpp_lib_stdatomic_h
#endif // _GLIBCXX_STDATOMIC_H
atomic
version.h
std::atomic_ulong
atomic< unsigned long > atomic_ulong
atomic_ulong
Definition atomic:1097
std::atomic_intmax_t
atomic< intmax_t > atomic_intmax_t
atomic_intmax_t
Definition atomic:1211
std::atomic_uintptr_t
atomic< uintptr_t > atomic_uintptr_t
atomic_uintptr_t
Definition atomic:1202
std::atomic_schar
atomic< signed char > atomic_schar
atomic_schar
Definition atomic:1076
std::atomic_int_least8_t
atomic< int_least8_t > atomic_int_least8_t
atomic_int_least8_t
Definition atomic:1149
std::atomic_ullong
atomic< unsigned long long > atomic_ullong
atomic_ullong
Definition atomic:1103
std::atomic_uint_fast8_t
atomic< uint_fast8_t > atomic_uint_fast8_t
atomic_uint_fast8_t
Definition atomic:1177
std::atomic_intptr_t
atomic< intptr_t > atomic_intptr_t
atomic_intptr_t
Definition atomic:1199
std::atomic_int16_t
atomic< int16_t > atomic_int16_t
atomic_int16_t
Definition atomic:1130
std::atomic_size_t
atomic< size_t > atomic_size_t
atomic_size_t
Definition atomic:1205
std::atomic_long
atomic< long > atomic_long
atomic_long
Definition atomic:1094
std::atomic_uint_least8_t
atomic< uint_least8_t > atomic_uint_least8_t
atomic_uint_least8_t
Definition atomic:1152
std::atomic_short
atomic< short > atomic_short
atomic_short
Definition atomic:1082
std::atomic_uint_least16_t
atomic< uint_least16_t > atomic_uint_least16_t
atomic_uint_least16_t
Definition atomic:1158
std::atomic_uint16_t
atomic< uint16_t > atomic_uint16_t
atomic_uint16_t
Definition atomic:1133
std::atomic_uint64_t
atomic< uint64_t > atomic_uint64_t
atomic_uint64_t
Definition atomic:1145
std::atomic_int_least32_t
atomic< int_least32_t > atomic_int_least32_t
atomic_int_least32_t
Definition atomic:1161
std::atomic_uint8_t
atomic< uint8_t > atomic_uint8_t
atomic_uint8_t
Definition atomic:1127
std::atomic_wchar_t
atomic< wchar_t > atomic_wchar_t
atomic_wchar_t
Definition atomic:1106
std::atomic_uint
atomic< unsigned int > atomic_uint
atomic_uint
Definition atomic:1091
std::atomic_uint_least32_t
atomic< uint_least32_t > atomic_uint_least32_t
atomic_uint_least32_t
Definition atomic:1164
std::atomic_uint_fast64_t
atomic< uint_fast64_t > atomic_uint_fast64_t
atomic_uint_fast64_t
Definition atomic:1195
std::atomic_int_fast32_t
atomic< int_fast32_t > atomic_int_fast32_t
atomic_int_fast32_t
Definition atomic:1186
std::atomic_char
atomic< char > atomic_char
atomic_char
Definition atomic:1073
std::atomic_int
atomic< int > atomic_int
atomic_int
Definition atomic:1088
std::atomic_uint_least64_t
atomic< uint_least64_t > atomic_uint_least64_t
atomic_uint_least64_t
Definition atomic:1170
std::atomic_int64_t
atomic< int64_t > atomic_int64_t
atomic_int64_t
Definition atomic:1142
std::atomic_uintmax_t
atomic< uintmax_t > atomic_uintmax_t
atomic_uintmax_t
Definition atomic:1214
std::atomic_int_fast16_t
atomic< int_fast16_t > atomic_int_fast16_t
atomic_int_fast16_t
Definition atomic:1180
std::atomic_int32_t
atomic< int32_t > atomic_int32_t
atomic_int32_t
Definition atomic:1136
std::atomic_uint_fast16_t
atomic< uint_fast16_t > atomic_uint_fast16_t
atomic_uint_fast16_t
Definition atomic:1183
std::atomic_int8_t
atomic< int8_t > atomic_int8_t
atomic_int8_t
Definition atomic:1124
std::atomic_llong
atomic< long long > atomic_llong
atomic_llong
Definition atomic:1100
std::atomic_char16_t
atomic< char16_t > atomic_char16_t
atomic_char16_t
Definition atomic:1114
std::atomic_int_fast64_t
atomic< int_fast64_t > atomic_int_fast64_t
atomic_int_fast64_t
Definition atomic:1192
std::atomic_ptrdiff_t
atomic< ptrdiff_t > atomic_ptrdiff_t
atomic_ptrdiff_t
Definition atomic:1208
std::atomic_char32_t
atomic< char32_t > atomic_char32_t
atomic_char32_t
Definition atomic:1117
std::atomic_int_least16_t
atomic< int_least16_t > atomic_int_least16_t
atomic_int_least16_t
Definition atomic:1155
std::atomic_uchar
atomic< unsigned char > atomic_uchar
atomic_uchar
Definition atomic:1079
std::atomic_int_fast8_t
atomic< int_fast8_t > atomic_int_fast8_t
atomic_int_fast8_t
Definition atomic:1174
std::memory_order
memory_order
Enumeration for memory_order.
Definition atomic_base.h:66
std::atomic_ushort
atomic< unsigned short > atomic_ushort
atomic_ushort
Definition atomic:1085
std::atomic_int_least64_t
atomic< int_least64_t > atomic_int_least64_t
atomic_int_least64_t
Definition atomic:1167
std::atomic_bool
atomic< bool > atomic_bool
atomic_bool
Definition atomic:1070
std::atomic_uint_fast32_t
atomic< uint_fast32_t > atomic_uint_fast32_t
atomic_uint_fast32_t
Definition atomic:1189
std::atomic_uint32_t
atomic< uint32_t > atomic_uint32_t
atomic_uint32_t
Definition atomic:1139
std::atomic_flag
atomic_flag
Definition atomic_base.h:212