mn::basic_atomic_flag< TAtomicType, TTrue, TFalse > Class Template Reference

#include <mn_atomic.hpp>

+ Collaboration diagram for mn::basic_atomic_flag< TAtomicType, TTrue, TFalse >:

Public Types

using flag_type = TAtomicType
 
using reference = TAtomicType &
 

Public Member Functions

constexpr basic_atomic_flag () noexcept
 
constexpr basic_atomic_flag (const flag_type &flag) noexcept
 
 basic_atomic_flag (const basic_atomic_flag &) noexcept=delete
 
reference operator= (const reference) noexcept=delete
 
reference operator= (const reference) volatile noexcept=delete
 
void clear (memory_order order=memory_order::SeqCst) noexcept
 
flag_type test_and_set (memory_order order=memory_order::SeqCst) noexcept
 
flag_type test (memory_order order=memory_order::SeqCst) const
 

Private Attributes

_atomic< flag_typem_bFlag
 

Member Typedef Documentation

◆ flag_type

template<typename TAtomicType , TAtomicType TTrue = true, TAtomicType TFalse = false>
using mn::basic_atomic_flag< TAtomicType, TTrue, TFalse >::flag_type = TAtomicType

◆ reference

template<typename TAtomicType , TAtomicType TTrue = true, TAtomicType TFalse = false>
using mn::basic_atomic_flag< TAtomicType, TTrue, TFalse >::reference = TAtomicType&

Constructor & Destructor Documentation

◆ basic_atomic_flag() [1/3]

template<typename TAtomicType , TAtomicType TTrue = true, TAtomicType TFalse = false>
constexpr mn::basic_atomic_flag< TAtomicType, TTrue, TFalse >::basic_atomic_flag ( )
inlineconstexprnoexcept

◆ basic_atomic_flag() [2/3]

template<typename TAtomicType , TAtomicType TTrue = true, TAtomicType TFalse = false>
constexpr mn::basic_atomic_flag< TAtomicType, TTrue, TFalse >::basic_atomic_flag ( const flag_type flag)
inlineconstexprnoexcept

◆ basic_atomic_flag() [3/3]

template<typename TAtomicType , TAtomicType TTrue = true, TAtomicType TFalse = false>
mn::basic_atomic_flag< TAtomicType, TTrue, TFalse >::basic_atomic_flag ( const basic_atomic_flag< TAtomicType, TTrue, TFalse > &  )
deletenoexcept

Member Function Documentation

◆ clear()

template<typename TAtomicType , TAtomicType TTrue = true, TAtomicType TFalse = false>
void mn::basic_atomic_flag< TAtomicType, TTrue, TFalse >::clear ( memory_order  order = memory_order::SeqCst)
inlinenoexcept

◆ operator=() [1/2]

template<typename TAtomicType , TAtomicType TTrue = true, TAtomicType TFalse = false>
reference mn::basic_atomic_flag< TAtomicType, TTrue, TFalse >::operator= ( const  reference)
deletenoexcept

◆ operator=() [2/2]

template<typename TAtomicType , TAtomicType TTrue = true, TAtomicType TFalse = false>
reference mn::basic_atomic_flag< TAtomicType, TTrue, TFalse >::operator= ( const  reference) volatile
deletenoexcept

◆ test()

template<typename TAtomicType , TAtomicType TTrue = true, TAtomicType TFalse = false>
flag_type mn::basic_atomic_flag< TAtomicType, TTrue, TFalse >::test ( memory_order  order = memory_order::SeqCst) const
inline

◆ test_and_set()

template<typename TAtomicType , TAtomicType TTrue = true, TAtomicType TFalse = false>
flag_type mn::basic_atomic_flag< TAtomicType, TTrue, TFalse >::test_and_set ( memory_order  order = memory_order::SeqCst)
inlinenoexcept

Member Data Documentation

◆ m_bFlag

template<typename TAtomicType , TAtomicType TTrue = true, TAtomicType TFalse = false>
_atomic<flag_type> mn::basic_atomic_flag< TAtomicType, TTrue, TFalse >::m_bFlag
private

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