libstdc++
atomic_base.h File Reference

Go to the source code of this file.

Classes

struct  std::__atomic_base< _ITp >
 
struct  std::__atomic_base< _PTp * >
 
struct  std::__atomic_flag_base
 
struct  std::atomic_flag
 

Namespaces

 std
 

Macros

#define __cpp_lib_atomic_flag_test
 
#define __cpp_lib_atomic_value_initialization
 
#define _GLIBCXX20_INIT(I)
 
#define ATOMIC_FLAG_INIT
 
#define ATOMIC_VAR_INIT(_VI)
 

Typedefs

typedef unsigned char std::__atomic_flag_data_type
 
template<typename _Tp >
using std::__atomic_impl::_Diff = __conditional_t< is_pointer_v< _Tp >, ptrdiff_t, _Val< _Tp > >
 
template<typename _Tp >
using std::__atomic_impl::_Val = remove_volatile_t< _Tp >
 

Enumerations

enum  __memory_order_modifier { __memory_order_mask , __memory_order_modifier_mask , __memory_order_hle_acquire , __memory_order_hle_release }
 
enum class  std::memory_order : int {
  relaxed , consume , acquire , release ,
  acq_rel , seq_cst
}
 

Functions

template<typename _Tp >
_Tp std::__atomic_impl::__add_fetch (_Tp *__ptr, _Diff< _Tp > __i) noexcept
 
template<typename _Tp >
_Tp std::__atomic_impl::__add_fetch_flt (_Tp *__ptr, _Val< _Tp > __i) noexcept
 
template<typename _Tp >
_Tp std::__atomic_impl::__and_fetch (_Tp *__ptr, _Val< _Tp > __i) noexcept
 
constexpr memory_order std::__cmpexch_failure_order (memory_order __m) noexcept
 
constexpr memory_order std::__cmpexch_failure_order2 (memory_order __m) noexcept
 
template<typename _Tp >
_Tp std::__atomic_impl::__fetch_add_flt (_Tp *__ptr, _Val< _Tp > __i, memory_order __m) noexcept
 
template<typename _Tp >
_Tp std::__atomic_impl::__fetch_sub_flt (_Tp *__ptr, _Val< _Tp > __i, memory_order __m) noexcept
 
constexpr bool std::__is_valid_cmpexch_failure_order (memory_order __m) noexcept
 
template<typename _Tp >
_Tp std::__atomic_impl::__or_fetch (_Tp *__ptr, _Val< _Tp > __i) noexcept
 
template<typename _Tp >
_Tp std::__atomic_impl::__sub_fetch (_Tp *__ptr, _Diff< _Tp > __i) noexcept
 
template<typename _Tp >
_Tp std::__atomic_impl::__sub_fetch_flt (_Tp *__ptr, _Val< _Tp > __i) noexcept
 
template<typename _Tp >
_Tp std::__atomic_impl::__xor_fetch (_Tp *__ptr, _Val< _Tp > __i) noexcept
 
void std::atomic_signal_fence (memory_order __m) noexcept
 
void std::atomic_thread_fence (memory_order __m) noexcept
 
template<typename _Tp >
bool std::__atomic_impl::compare_exchange_strong (_Tp *__ptr, _Val< _Tp > &__expected, _Val< _Tp > __desired, memory_order __success, memory_order __failure) noexcept
 
template<typename _Tp >
bool std::__atomic_impl::compare_exchange_weak (_Tp *__ptr, _Val< _Tp > &__expected, _Val< _Tp > __desired, memory_order __success, memory_order __failure) noexcept
 
template<typename _Tp >
_Val< _Tp > std::__atomic_impl::exchange (_Tp *__ptr, _Val< _Tp > __desired, memory_order __m) noexcept
 
template<typename _Tp >
_Tp std::__atomic_impl::fetch_add (_Tp *__ptr, _Diff< _Tp > __i, memory_order __m) noexcept
 
template<typename _Tp >
_Tp std::__atomic_impl::fetch_and (_Tp *__ptr, _Val< _Tp > __i, memory_order __m) noexcept
 
template<typename _Tp >
_Tp std::__atomic_impl::fetch_or (_Tp *__ptr, _Val< _Tp > __i, memory_order __m) noexcept
 
template<typename _Tp >
_Tp std::__atomic_impl::fetch_sub (_Tp *__ptr, _Diff< _Tp > __i, memory_order __m) noexcept
 
template<typename _Tp >
_Tp std::__atomic_impl::fetch_xor (_Tp *__ptr, _Val< _Tp > __i, memory_order __m) noexcept
 
template<size_t _Size, size_t _Align>
bool std::__atomic_impl::is_lock_free () noexcept
 
template<typename _Tp >
_Tp std::kill_dependency (_Tp __y) noexcept
 
template<typename _Tp >
_Val< _Tp > std::__atomic_impl::load (const _Tp *__ptr, memory_order __m) noexcept
 
template<typename _Tp >
void std::__atomic_impl::notify_all (const _Tp *__ptr) noexcept
 
template<typename _Tp >
void std::__atomic_impl::notify_one (const _Tp *__ptr) noexcept
 
constexpr memory_order std::operator& (memory_order __m, __memory_order_modifier __mod)
 
constexpr memory_order std::operator| (memory_order __m, __memory_order_modifier __mod)
 
template<typename _Tp >
void std::__atomic_impl::store (_Tp *__ptr, _Val< _Tp > __t, memory_order __m) noexcept
 
template<typename _Tp >
void std::__atomic_impl::wait (const _Tp *__ptr, _Val< _Tp > __old, memory_order __m=memory_order_seq_cst) noexcept
 

Variables

constexpr memory_order std::memory_order_acq_rel
 
constexpr memory_order std::memory_order_acquire
 
constexpr memory_order std::memory_order_consume
 
constexpr memory_order std::memory_order_relaxed
 
constexpr memory_order std::memory_order_release
 
constexpr memory_order std::memory_order_seq_cst
 

Detailed Description

This is an internal header file, included by other library headers. Do not attempt to use it directly. Instead, include <atomic>.

Definition in file atomic_base.h.