File indexing completed on 2026-05-03 08:13:46
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #ifndef _LIBCPP___CXX03_STDATOMIC_H
0011 #define _LIBCPP___CXX03_STDATOMIC_H
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055
0056
0057
0058
0059
0060
0061
0062
0063
0064
0065
0066
0067
0068
0069
0070
0071
0072
0073
0074
0075
0076
0077
0078
0079
0080
0081
0082
0083
0084
0085
0086
0087
0088
0089
0090
0091
0092
0093
0094
0095
0096
0097
0098
0099
0100
0101
0102
0103
0104
0105
0106
0107
0108
0109
0110
0111
0112
0113
0114
0115
0116
0117
0118 #include <__cxx03/__config>
0119
0120 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
0121 # pragma GCC system_header
0122 #endif
0123
0124 #if defined(__cplusplus) && _LIBCPP_STD_VER >= 23
0125
0126 # include <__cxx03/atomic>
0127 # include <__cxx03/version>
0128
0129 # ifdef _Atomic
0130 # undef _Atomic
0131 # endif
0132
0133 # define _Atomic(_Tp) ::std::atomic<_Tp>
0134
0135 using std::memory_order _LIBCPP_USING_IF_EXISTS;
0136 using std::memory_order_relaxed _LIBCPP_USING_IF_EXISTS;
0137 using std::memory_order_consume _LIBCPP_USING_IF_EXISTS;
0138 using std::memory_order_acquire _LIBCPP_USING_IF_EXISTS;
0139 using std::memory_order_release _LIBCPP_USING_IF_EXISTS;
0140 using std::memory_order_acq_rel _LIBCPP_USING_IF_EXISTS;
0141 using std::memory_order_seq_cst _LIBCPP_USING_IF_EXISTS;
0142
0143 using std::atomic_flag _LIBCPP_USING_IF_EXISTS;
0144
0145 using std::atomic_bool _LIBCPP_USING_IF_EXISTS;
0146 using std::atomic_char _LIBCPP_USING_IF_EXISTS;
0147 using std::atomic_schar _LIBCPP_USING_IF_EXISTS;
0148 using std::atomic_uchar _LIBCPP_USING_IF_EXISTS;
0149 using std::atomic_short _LIBCPP_USING_IF_EXISTS;
0150 using std::atomic_ushort _LIBCPP_USING_IF_EXISTS;
0151 using std::atomic_int _LIBCPP_USING_IF_EXISTS;
0152 using std::atomic_uint _LIBCPP_USING_IF_EXISTS;
0153 using std::atomic_long _LIBCPP_USING_IF_EXISTS;
0154 using std::atomic_ulong _LIBCPP_USING_IF_EXISTS;
0155 using std::atomic_llong _LIBCPP_USING_IF_EXISTS;
0156 using std::atomic_ullong _LIBCPP_USING_IF_EXISTS;
0157 using std::atomic_char8_t _LIBCPP_USING_IF_EXISTS;
0158 using std::atomic_char16_t _LIBCPP_USING_IF_EXISTS;
0159 using std::atomic_char32_t _LIBCPP_USING_IF_EXISTS;
0160 using std::atomic_wchar_t _LIBCPP_USING_IF_EXISTS;
0161
0162 using std::atomic_int8_t _LIBCPP_USING_IF_EXISTS;
0163 using std::atomic_uint8_t _LIBCPP_USING_IF_EXISTS;
0164 using std::atomic_int16_t _LIBCPP_USING_IF_EXISTS;
0165 using std::atomic_uint16_t _LIBCPP_USING_IF_EXISTS;
0166 using std::atomic_int32_t _LIBCPP_USING_IF_EXISTS;
0167 using std::atomic_uint32_t _LIBCPP_USING_IF_EXISTS;
0168 using std::atomic_int64_t _LIBCPP_USING_IF_EXISTS;
0169 using std::atomic_uint64_t _LIBCPP_USING_IF_EXISTS;
0170
0171 using std::atomic_int_least8_t _LIBCPP_USING_IF_EXISTS;
0172 using std::atomic_uint_least8_t _LIBCPP_USING_IF_EXISTS;
0173 using std::atomic_int_least16_t _LIBCPP_USING_IF_EXISTS;
0174 using std::atomic_uint_least16_t _LIBCPP_USING_IF_EXISTS;
0175 using std::atomic_int_least32_t _LIBCPP_USING_IF_EXISTS;
0176 using std::atomic_uint_least32_t _LIBCPP_USING_IF_EXISTS;
0177 using std::atomic_int_least64_t _LIBCPP_USING_IF_EXISTS;
0178 using std::atomic_uint_least64_t _LIBCPP_USING_IF_EXISTS;
0179
0180 using std::atomic_int_fast8_t _LIBCPP_USING_IF_EXISTS;
0181 using std::atomic_uint_fast8_t _LIBCPP_USING_IF_EXISTS;
0182 using std::atomic_int_fast16_t _LIBCPP_USING_IF_EXISTS;
0183 using std::atomic_uint_fast16_t _LIBCPP_USING_IF_EXISTS;
0184 using std::atomic_int_fast32_t _LIBCPP_USING_IF_EXISTS;
0185 using std::atomic_uint_fast32_t _LIBCPP_USING_IF_EXISTS;
0186 using std::atomic_int_fast64_t _LIBCPP_USING_IF_EXISTS;
0187 using std::atomic_uint_fast64_t _LIBCPP_USING_IF_EXISTS;
0188
0189 using std::atomic_intptr_t _LIBCPP_USING_IF_EXISTS;
0190 using std::atomic_uintptr_t _LIBCPP_USING_IF_EXISTS;
0191 using std::atomic_size_t _LIBCPP_USING_IF_EXISTS;
0192 using std::atomic_ptrdiff_t _LIBCPP_USING_IF_EXISTS;
0193 using std::atomic_intmax_t _LIBCPP_USING_IF_EXISTS;
0194 using std::atomic_uintmax_t _LIBCPP_USING_IF_EXISTS;
0195
0196 using std::atomic_compare_exchange_strong _LIBCPP_USING_IF_EXISTS;
0197 using std::atomic_compare_exchange_strong_explicit _LIBCPP_USING_IF_EXISTS;
0198 using std::atomic_compare_exchange_weak _LIBCPP_USING_IF_EXISTS;
0199 using std::atomic_compare_exchange_weak_explicit _LIBCPP_USING_IF_EXISTS;
0200 using std::atomic_exchange _LIBCPP_USING_IF_EXISTS;
0201 using std::atomic_exchange_explicit _LIBCPP_USING_IF_EXISTS;
0202 using std::atomic_fetch_add _LIBCPP_USING_IF_EXISTS;
0203 using std::atomic_fetch_add_explicit _LIBCPP_USING_IF_EXISTS;
0204 using std::atomic_fetch_and _LIBCPP_USING_IF_EXISTS;
0205 using std::atomic_fetch_and_explicit _LIBCPP_USING_IF_EXISTS;
0206 using std::atomic_fetch_or _LIBCPP_USING_IF_EXISTS;
0207 using std::atomic_fetch_or_explicit _LIBCPP_USING_IF_EXISTS;
0208 using std::atomic_fetch_sub _LIBCPP_USING_IF_EXISTS;
0209 using std::atomic_fetch_sub_explicit _LIBCPP_USING_IF_EXISTS;
0210 using std::atomic_flag_clear _LIBCPP_USING_IF_EXISTS;
0211 using std::atomic_flag_clear_explicit _LIBCPP_USING_IF_EXISTS;
0212 using std::atomic_flag_test_and_set _LIBCPP_USING_IF_EXISTS;
0213 using std::atomic_flag_test_and_set_explicit _LIBCPP_USING_IF_EXISTS;
0214 using std::atomic_is_lock_free _LIBCPP_USING_IF_EXISTS;
0215 using std::atomic_load _LIBCPP_USING_IF_EXISTS;
0216 using std::atomic_load_explicit _LIBCPP_USING_IF_EXISTS;
0217 using std::atomic_store _LIBCPP_USING_IF_EXISTS;
0218 using std::atomic_store_explicit _LIBCPP_USING_IF_EXISTS;
0219
0220 using std::atomic_signal_fence _LIBCPP_USING_IF_EXISTS;
0221 using std::atomic_thread_fence _LIBCPP_USING_IF_EXISTS;
0222
0223 #elif defined(_LIBCPP_COMPILER_CLANG_BASED)
0224
0225
0226
0227
0228
0229 # if __has_include_next(<stdatomic.h>)
0230 # include_next <stdatomic.h>
0231 # endif
0232
0233 #endif
0234
0235 #endif