#ifndef _LIBCPP___ATOMIC_MEMORY_ORDER_H
#define _LIBCPP___ATOMIC_MEMORY_ORDER_H
#include <__config>
#include <__type_traits/is_same.h>
#include <__type_traits/underlying_type.h>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
# pragma GCC system_header
#endif
_LIBCPP_BEGIN_NAMESPACE_STD
enum __legacy_memory_order { … };
__memory_order_underlying_t;
#if _LIBCPP_STD_VER >= 20
enum class memory_order : __memory_order_underlying_t { … };
static_assert …;
inline constexpr auto memory_order_relaxed = …;
inline constexpr auto memory_order_consume = …;
inline constexpr auto memory_order_acquire = …;
inline constexpr auto memory_order_release = …;
inline constexpr auto memory_order_acq_rel = …;
inline constexpr auto memory_order_seq_cst = …;
#else
enum memory_order {
memory_order_relaxed = __mo_relaxed,
memory_order_consume = __mo_consume,
memory_order_acquire = __mo_acquire,
memory_order_release = __mo_release,
memory_order_acq_rel = __mo_acq_rel,
memory_order_seq_cst = __mo_seq_cst,
};
#endif
_LIBCPP_END_NAMESPACE_STD
#endif