1// -*- C++ -*- 2//===----------------------------------------------------------------------===// 3// 4// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 5// See https://llvm.org/LICENSE.txt for license information. 6// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 7// 8//===----------------------------------------------------------------------===// 9 10export namespace std { 11 12 // [atomics.order], order and consistency 13 using std::memory_order; 14 using std::memory_order_acq_rel; 15 using std::memory_order_acquire; 16 using std::memory_order_consume; 17 using std::memory_order_relaxed; 18 using std::memory_order_release; 19 using std::memory_order_seq_cst; 20 21 using std::kill_dependency; 22 23 // [atomics.ref.generic], class template atomic_ref 24 // [atomics.ref.pointer], partial specialization for pointers 25 // using std::atomic_ref; 26 27 // [atomics.types.generic], class template atomic 28 using std::atomic; 29 30 // [atomics.nonmembers], non-member functions 31 using std::atomic_compare_exchange_strong; 32 using std::atomic_compare_exchange_strong_explicit; 33 using std::atomic_compare_exchange_weak; 34 using std::atomic_compare_exchange_weak_explicit; 35 using std::atomic_exchange; 36 using std::atomic_exchange_explicit; 37 using std::atomic_is_lock_free; 38 using std::atomic_load; 39 using std::atomic_load_explicit; 40 using std::atomic_store; 41 using std::atomic_store_explicit; 42 43 using std::atomic_fetch_add; 44 using std::atomic_fetch_add_explicit; 45 using std::atomic_fetch_and; 46 using std::atomic_fetch_and_explicit; 47 using std::atomic_fetch_or; 48 using std::atomic_fetch_or_explicit; 49 using std::atomic_fetch_sub; 50 using std::atomic_fetch_sub_explicit; 51 using std::atomic_fetch_xor; 52 using std::atomic_fetch_xor_explicit; 53 using std::atomic_notify_all; 54 using std::atomic_notify_one; 55 using std::atomic_wait; 56 using std::atomic_wait_explicit; 57 58 // [atomics.alias], type aliases 59 using std::atomic_bool; 60 using std::atomic_char; 61 using std::atomic_char16_t; 62 using std::atomic_char32_t; 63 using std::atomic_char8_t; 64 using std::atomic_int; 65 using std::atomic_llong; 66 using std::atomic_long; 67 using std::atomic_schar; 68 using std::atomic_short; 69 using std::atomic_uchar; 70 using std::atomic_uint; 71 using std::atomic_ullong; 72 using std::atomic_ulong; 73 using std::atomic_ushort; 74#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS 75 using std::atomic_wchar_t; 76#endif 77 78 using std::atomic_int16_t; 79 using std::atomic_int32_t; 80 using std::atomic_int64_t; 81 using std::atomic_int8_t; 82 using std::atomic_uint16_t; 83 using std::atomic_uint32_t; 84 using std::atomic_uint64_t; 85 using std::atomic_uint8_t; 86 87 using std::atomic_int_least16_t; 88 using std::atomic_int_least32_t; 89 using std::atomic_int_least64_t; 90 using std::atomic_int_least8_t; 91 using std::atomic_uint_least16_t; 92 using std::atomic_uint_least32_t; 93 using std::atomic_uint_least64_t; 94 using std::atomic_uint_least8_t; 95 96 using std::atomic_int_fast16_t; 97 using std::atomic_int_fast32_t; 98 using std::atomic_int_fast64_t; 99 using std::atomic_int_fast8_t; 100 using std::atomic_uint_fast16_t; 101 using std::atomic_uint_fast32_t; 102 using std::atomic_uint_fast64_t; 103 using std::atomic_uint_fast8_t; 104 105 using std::atomic_intmax_t; 106 using std::atomic_intptr_t; 107 using std::atomic_ptrdiff_t; 108 using std::atomic_size_t; 109 using std::atomic_uintmax_t; 110 using std::atomic_uintptr_t; 111 112 using std::atomic_signed_lock_free; 113 using std::atomic_unsigned_lock_free; 114 115 // [atomics.flag], flag type and operations 116 using std::atomic_flag; 117 118 using std::atomic_flag_clear; 119 using std::atomic_flag_clear_explicit; 120 using std::atomic_flag_test; 121 using std::atomic_flag_test_and_set; 122 using std::atomic_flag_test_and_set_explicit; 123 using std::atomic_flag_test_explicit; 124 125 using std::atomic_flag_notify_all; 126 using std::atomic_flag_notify_one; 127 using std::atomic_flag_wait; 128 using std::atomic_flag_wait_explicit; 129 130 // [atomics.fences], fences 131 using std::atomic_signal_fence; 132 using std::atomic_thread_fence; 133 134 // [depr.atomics.nonmembers] 135 using std::atomic_init; 136 137} // namespace std 138