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

#include <atomic.hpp>

Inheritance diagram for yaclib::detail::Atomic< Impl, U * >:
[legend]
Collaboration diagram for yaclib::detail::Atomic< Impl, U * >:
[legend]

Public Member Functions

Ufetch_add (std::ptrdiff_t arg, std::memory_order order=std::memory_order_seq_cst) noexcept
 
Ufetch_add (std::ptrdiff_t arg, std::memory_order order=std::memory_order_seq_cst) volatile noexcept
 
Ufetch_sub (std::ptrdiff_t arg, std::memory_order order=std::memory_order_seq_cst) noexcept
 
Ufetch_sub (std::ptrdiff_t arg, std::memory_order order=std::memory_order_seq_cst) volatile noexcept
 
Uoperator++ () noexcept
 
Uoperator++ () volatile noexcept
 
Uoperator++ (int) noexcept
 
Uoperator++ (int) volatile noexcept
 
Uoperator-- () noexcept
 
Uoperator-- () volatile noexcept
 
Uoperator-- (int) noexcept
 
Uoperator-- (int) volatile noexcept
 
Uoperator+= (std::ptrdiff_t arg) noexcept
 
Uoperator+= (std::ptrdiff_t arg) volatile noexcept
 
Uoperator-= (std::ptrdiff_t arg) noexcept
 
Uoperator-= (std::ptrdiff_t arg) volatile noexcept
 
- Public Member Functions inherited from yaclib::detail::AtomicBase< Impl, U * >
U * operator= (U * desired) noexcept
 
U * operator= (U * desired) volatile noexcept
 
void store (U * desired, std::memory_order order=std::memory_order_seq_cst) noexcept
 
void store (U * desired, std::memory_order order=std::memory_order_seq_cst) volatile noexcept
 
U * load (std::memory_order order=std::memory_order_seq_cst) const noexcept
 
U * load (std::memory_order order=std::memory_order_seq_cst) const volatile noexcept
 
 operator U* () const noexcept
 
 operator U* () const volatile noexcept
 
U * exchange (U * desired, std::memory_order order=std::memory_order_seq_cst) noexcept
 
U * exchange (U * desired, std::memory_order order=std::memory_order_seq_cst) volatile noexcept
 
bool compare_exchange_weak (U * &expected, U * desired, std::memory_order success, std::memory_order failure) noexcept
 
bool compare_exchange_weak (U * &expected, U * desired, std::memory_order success, std::memory_order failure) volatile noexcept
 
bool compare_exchange_weak (U * &expected, U * desired, std::memory_order order=std::memory_order_seq_cst) noexcept
 
bool compare_exchange_weak (U * &expected, U * desired, std::memory_order order=std::memory_order_seq_cst) volatile noexcept
 
bool compare_exchange_strong (U * &expected, U * desired, std::memory_order success, std::memory_order failure) noexcept
 
bool compare_exchange_strong (U * &expected, U * desired, std::memory_order success, std::memory_order failure) volatile noexcept
 
bool compare_exchange_strong (U * &expected, U * desired, std::memory_order order=std::memory_order_seq_cst) noexcept
 
bool compare_exchange_strong (U * &expected, U * desired, std::memory_order order=std::memory_order_seq_cst) volatile noexcept
 

Detailed Description

template<typename Impl, typename U>
class yaclib::detail::Atomic< Impl, U * >

Definition at line 286 of file atomic.hpp.

Member Function Documentation

◆ fetch_add() [1/2]

template<typename Impl , typename U >
U * yaclib::detail::Atomic< Impl, U * >::fetch_add ( std::ptrdiff_t  arg,
std::memory_order  order = std::memory_order_seq_cst 
)
inlinenoexcept

Definition at line 292 of file atomic.hpp.

References yaclib::MakeContract(), and YACLIB_INJECT_FAULT.

◆ fetch_add() [2/2]

template<typename Impl , typename U >
U * yaclib::detail::Atomic< Impl, U * >::fetch_add ( std::ptrdiff_t  arg,
std::memory_order  order = std::memory_order_seq_cst 
) volatile
inlinenoexcept

Definition at line 296 of file atomic.hpp.

References yaclib::MakeContract(), and YACLIB_INJECT_FAULT.

◆ fetch_sub() [1/2]

template<typename Impl , typename U >
U * yaclib::detail::Atomic< Impl, U * >::fetch_sub ( std::ptrdiff_t  arg,
std::memory_order  order = std::memory_order_seq_cst 
)
inlinenoexcept

Definition at line 301 of file atomic.hpp.

References yaclib::MakeContract(), and YACLIB_INJECT_FAULT.

◆ fetch_sub() [2/2]

template<typename Impl , typename U >
U * yaclib::detail::Atomic< Impl, U * >::fetch_sub ( std::ptrdiff_t  arg,
std::memory_order  order = std::memory_order_seq_cst 
) volatile
inlinenoexcept

Definition at line 305 of file atomic.hpp.

References yaclib::MakeContract(), and YACLIB_INJECT_FAULT.

◆ operator++() [1/4]

template<typename Impl , typename U >
U * yaclib::detail::Atomic< Impl, U * >::operator++ ( )
inlinenoexcept

Definition at line 310 of file atomic.hpp.

References yaclib::MakeContract(), and YACLIB_INJECT_FAULT.

◆ operator++() [2/4]

template<typename Impl , typename U >
U * yaclib::detail::Atomic< Impl, U * >::operator++ ( ) volatile
inlinenoexcept

Definition at line 314 of file atomic.hpp.

References yaclib::MakeContract(), and YACLIB_INJECT_FAULT.

◆ operator++() [3/4]

template<typename Impl , typename U >
U * yaclib::detail::Atomic< Impl, U * >::operator++ ( int  )
inlinenoexcept

Definition at line 319 of file atomic.hpp.

References yaclib::MakeContract(), and YACLIB_INJECT_FAULT.

◆ operator++() [4/4]

template<typename Impl , typename U >
U * yaclib::detail::Atomic< Impl, U * >::operator++ ( int  ) volatile
inlinenoexcept

Definition at line 323 of file atomic.hpp.

References yaclib::MakeContract(), and YACLIB_INJECT_FAULT.

◆ operator+=() [1/2]

template<typename Impl , typename U >
U * yaclib::detail::Atomic< Impl, U * >::operator+= ( std::ptrdiff_t  arg)
inlinenoexcept

Definition at line 346 of file atomic.hpp.

References yaclib::MakeContract(), and YACLIB_INJECT_FAULT.

◆ operator+=() [2/2]

template<typename Impl , typename U >
U * yaclib::detail::Atomic< Impl, U * >::operator+= ( std::ptrdiff_t  arg) volatile
inlinenoexcept

Definition at line 350 of file atomic.hpp.

References yaclib::MakeContract(), and YACLIB_INJECT_FAULT.

◆ operator--() [1/4]

template<typename Impl , typename U >
U * yaclib::detail::Atomic< Impl, U * >::operator-- ( )
inlinenoexcept

Definition at line 328 of file atomic.hpp.

References yaclib::MakeContract(), and YACLIB_INJECT_FAULT.

◆ operator--() [2/4]

template<typename Impl , typename U >
U * yaclib::detail::Atomic< Impl, U * >::operator-- ( ) volatile
inlinenoexcept

Definition at line 332 of file atomic.hpp.

References yaclib::MakeContract(), and YACLIB_INJECT_FAULT.

◆ operator--() [3/4]

template<typename Impl , typename U >
U * yaclib::detail::Atomic< Impl, U * >::operator-- ( int  )
inlinenoexcept

Definition at line 337 of file atomic.hpp.

References yaclib::MakeContract(), and YACLIB_INJECT_FAULT.

◆ operator--() [4/4]

template<typename Impl , typename U >
U * yaclib::detail::Atomic< Impl, U * >::operator-- ( int  ) volatile
inlinenoexcept

Definition at line 341 of file atomic.hpp.

References yaclib::MakeContract(), and YACLIB_INJECT_FAULT.

◆ operator-=() [1/2]

template<typename Impl , typename U >
U * yaclib::detail::Atomic< Impl, U * >::operator-= ( std::ptrdiff_t  arg)
inlinenoexcept

Definition at line 355 of file atomic.hpp.

References yaclib::MakeContract(), and YACLIB_INJECT_FAULT.

◆ operator-=() [2/2]

template<typename Impl , typename U >
U * yaclib::detail::Atomic< Impl, U * >::operator-= ( std::ptrdiff_t  arg) volatile
inlinenoexcept

Definition at line 359 of file atomic.hpp.

References yaclib::MakeContract(), and YACLIB_INJECT_FAULT.


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