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