142 lines · plain
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-exception7//8//===----------------------------------------------------------------------===//9 10export namespace std {11 12 // [atomics.order], order and consistency13 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_ref24 // [atomics.ref.pointer], partial specialization for pointers25 using std::atomic_ref _LIBCPP_USING_IF_EXISTS;26 27 // [atomics.types.generic], class template atomic28 using std::atomic _LIBCPP_USING_IF_EXISTS;29 30 // [atomics.nonmembers], non-member functions31 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 aliases59 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#if _LIBCPP_HAS_CHAR8_T64 using std::atomic_char8_t _LIBCPP_USING_IF_EXISTS;65#endif66 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#if _LIBCPP_HAS_WIDE_CHARACTERS77 using std::atomic_wchar_t _LIBCPP_USING_IF_EXISTS;78#endif79 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_TYPES115 using std::atomic_signed_lock_free _LIBCPP_USING_IF_EXISTS;116 using std::atomic_unsigned_lock_free _LIBCPP_USING_IF_EXISTS;117#endif118 119 // [atomics.flag], flag type and operations120 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], fences135 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 std142