YACLib
C++ library for concurrent tasks execution
Loading...
Searching...
No Matches
yaclib::detail::AtomicBase< Impl, T > Class Template Reference

#include <atomic.hpp>

Inheritance diagram for yaclib::detail::AtomicBase< Impl, T >:
[legend]
Collaboration diagram for yaclib::detail::AtomicBase< Impl, T >:
[legend]

Public Member Functions

operator= (T desired) noexcept
 
operator= (T desired) volatile noexcept
 
void store (T desired, std::memory_order order=std::memory_order_seq_cst) noexcept
 
void store (T desired, std::memory_order order=std::memory_order_seq_cst) volatile noexcept
 
load (std::memory_order order=std::memory_order_seq_cst) const noexcept
 
load (std::memory_order order=std::memory_order_seq_cst) const volatile noexcept
 
 operator T () const noexcept
 
 operator T () const volatile noexcept
 
exchange (T desired, std::memory_order order=std::memory_order_seq_cst) noexcept
 
exchange (T desired, std::memory_order order=std::memory_order_seq_cst) volatile noexcept
 
bool compare_exchange_weak (T &expected, T desired, std::memory_order success, std::memory_order failure) noexcept
 
bool compare_exchange_weak (T &expected, T desired, std::memory_order success, std::memory_order failure) volatile noexcept
 
bool compare_exchange_weak (T &expected, T desired, std::memory_order order=std::memory_order_seq_cst) noexcept
 
bool compare_exchange_weak (T &expected, T desired, std::memory_order order=std::memory_order_seq_cst) volatile noexcept
 
bool compare_exchange_strong (T &expected, T desired, std::memory_order success, std::memory_order failure) noexcept
 
bool compare_exchange_strong (T &expected, T desired, std::memory_order success, std::memory_order failure) volatile noexcept
 
bool compare_exchange_strong (T &expected, T desired, std::memory_order order=std::memory_order_seq_cst) noexcept
 
bool compare_exchange_strong (T &expected, T desired, std::memory_order order=std::memory_order_seq_cst) volatile noexcept
 

Detailed Description

template<typename Impl, typename T>
class yaclib::detail::AtomicBase< Impl, T >

Definition at line 15 of file atomic.hpp.

Member Function Documentation

◆ compare_exchange_strong() [1/4]

template<typename Impl , typename T >
bool yaclib::detail::AtomicBase< Impl, T >::compare_exchange_strong ( T &  expected,
desired,
std::memory_order  order = std::memory_order_seq_cst 
)
inlinenoexcept

Definition at line 108 of file atomic.hpp.

References yaclib::MakeContract(), and YACLIB_INJECT_FAULT.

◆ compare_exchange_strong() [2/4]

template<typename Impl , typename T >
bool yaclib::detail::AtomicBase< Impl, T >::compare_exchange_strong ( T &  expected,
desired,
std::memory_order  order = std::memory_order_seq_cst 
) volatile
inlinenoexcept

Definition at line 112 of file atomic.hpp.

References yaclib::MakeContract(), and YACLIB_INJECT_FAULT.

◆ compare_exchange_strong() [3/4]

template<typename Impl , typename T >
bool yaclib::detail::AtomicBase< Impl, T >::compare_exchange_strong ( T &  expected,
desired,
std::memory_order  success,
std::memory_order  failure 
)
inlinenoexcept

Definition at line 99 of file atomic.hpp.

References yaclib::MakeContract(), and YACLIB_INJECT_FAULT.

◆ compare_exchange_strong() [4/4]

template<typename Impl , typename T >
bool yaclib::detail::AtomicBase< Impl, T >::compare_exchange_strong ( T &  expected,
desired,
std::memory_order  success,
std::memory_order  failure 
) volatile
inlinenoexcept

Definition at line 103 of file atomic.hpp.

References yaclib::MakeContract(), and YACLIB_INJECT_FAULT.

◆ compare_exchange_weak() [1/4]

template<typename Impl , typename T >
bool yaclib::detail::AtomicBase< Impl, T >::compare_exchange_weak ( T &  expected,
desired,
std::memory_order  order = std::memory_order_seq_cst 
)
inlinenoexcept

◆ compare_exchange_weak() [2/4]

template<typename Impl , typename T >
bool yaclib::detail::AtomicBase< Impl, T >::compare_exchange_weak ( T &  expected,
desired,
std::memory_order  order = std::memory_order_seq_cst 
) volatile
inlinenoexcept

◆ compare_exchange_weak() [3/4]

template<typename Impl , typename T >
bool yaclib::detail::AtomicBase< Impl, T >::compare_exchange_weak ( T &  expected,
desired,
std::memory_order  success,
std::memory_order  failure 
)
inlinenoexcept

◆ compare_exchange_weak() [4/4]

template<typename Impl , typename T >
bool yaclib::detail::AtomicBase< Impl, T >::compare_exchange_weak ( T &  expected,
desired,
std::memory_order  success,
std::memory_order  failure 
) volatile
inlinenoexcept

◆ exchange() [1/2]

template<typename Impl , typename T >
T yaclib::detail::AtomicBase< Impl, T >::exchange ( desired,
std::memory_order  order = std::memory_order_seq_cst 
)
inlinenoexcept

Definition at line 56 of file atomic.hpp.

References yaclib::MakeContract(), and YACLIB_INJECT_FAULT.

◆ exchange() [2/2]

template<typename Impl , typename T >
T yaclib::detail::AtomicBase< Impl, T >::exchange ( desired,
std::memory_order  order = std::memory_order_seq_cst 
) volatile
inlinenoexcept

Definition at line 60 of file atomic.hpp.

References yaclib::MakeContract(), and YACLIB_INJECT_FAULT.

◆ load() [1/2]

◆ load() [2/2]

template<typename Impl , typename T >
T yaclib::detail::AtomicBase< Impl, T >::load ( std::memory_order  order = std::memory_order_seq_cst) const volatile
inlinenoexcept

Definition at line 43 of file atomic.hpp.

References yaclib::MakeContract(), and YACLIB_INJECT_FAULT.

◆ operator T() [1/2]

template<typename Impl , typename T >
yaclib::detail::AtomicBase< Impl, T >::operator T ( ) const
inlinenoexcept

Definition at line 48 of file atomic.hpp.

References yaclib::detail::AtomicBase< Impl, T >::load().

◆ operator T() [2/2]

template<typename Impl , typename T >
yaclib::detail::AtomicBase< Impl, T >::operator T ( ) const volatile
inlinenoexcept

Definition at line 51 of file atomic.hpp.

References yaclib::detail::AtomicBase< Impl, T >::load().

◆ operator=() [1/2]

template<typename Impl , typename T >
T yaclib::detail::AtomicBase< Impl, T >::operator= ( desired)
inlinenoexcept

Definition at line 23 of file atomic.hpp.

References yaclib::MakeContract(), and YACLIB_INJECT_FAULT.

◆ operator=() [2/2]

template<typename Impl , typename T >
T yaclib::detail::AtomicBase< Impl, T >::operator= ( desired) volatile
inlinenoexcept

Definition at line 27 of file atomic.hpp.

References yaclib::MakeContract(), and YACLIB_INJECT_FAULT.

◆ store() [1/2]

template<typename Impl , typename T >
void yaclib::detail::AtomicBase< Impl, T >::store ( desired,
std::memory_order  order = std::memory_order_seq_cst 
)
inlinenoexcept

Definition at line 32 of file atomic.hpp.

References yaclib::MakeContract(), and YACLIB_INJECT_FAULT.

◆ store() [2/2]

template<typename Impl , typename T >
void yaclib::detail::AtomicBase< Impl, T >::store ( desired,
std::memory_order  order = std::memory_order_seq_cst 
) volatile
inlinenoexcept

Definition at line 35 of file atomic.hpp.

References yaclib::MakeContract(), and YACLIB_INJECT_FAULT.


The documentation for this class was generated from the following file: