1.9
Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | List of all members
BitFields< T > Class Template Reference

Public Member Functions

constexpr BitFields () noexcept=default
 
 BitFields (BitFields &&) noexcept=default
 
constexpr BitFields (const BitFields &rhs) noexcept
 Copy constructor. More...
 
 BitFields (const char *str)
 
 BitFields (const std::string &str)
 
constexpr BitFields (const T &field)
 
 ~BitFields () noexcept=default
 
bool clear ()
 Clear all bit-fields. More...
 
bool clear (const T &field)
 Clear a single bit-field. More...
 
bool empty () const
 
void from_string (const std::string &str)
 Convert from string. More...
 
constexpr EGT_NODISCARD bool is_set (const T &field) const noexcept
 
bool operator!= (const BitFields &rhs) const
 
BitFieldsoperator= (BitFields &&) noexcept=default
 
BitFieldsoperator= (const BitFields &rhs)
 Assignment operator. More...
 
bool operator== (const BitFields &rhs) const
 
constexpr BitFields< T > operator| (const T &field) const noexcept
 Or operator. More...
 
bool set (const T &field)
 Set a single bit-field. More...
 
EGT_NODISCARD std::string to_string () const
 Convert the bit-fields to strings. More...
 

Public Attributes

Signal on_change
 Event signal. More...
 

Static Public Attributes

constexpr static const char BITFIELDS_DELIMITER = '|'
 Delimiter used to separate bit-fields in string representation. More...
 

Protected Member Functions

bool update (uint32_t new_word)
 

Protected Attributes

uint32_t m_word {0}
 

Constructor & Destructor Documentation

◆ BitFields() [1/6]

constexpr BitFields ( )
constexprdefaultnoexcept

◆ BitFields() [2/6]

BitFields ( const std::string &  str)
inlineexplicit
Parameters
[in]strString representation of the bit-fields.

◆ BitFields() [3/6]

BitFields ( const char *  str)
inlineexplicit
Parameters
[in]strString representation of the bit-fields.

◆ BitFields() [4/6]

constexpr BitFields ( const T &  field)
inlineconstexpr

◆ BitFields() [5/6]

constexpr BitFields ( const BitFields< T > &  rhs)
inlineconstexprnoexcept

Copy constructor.

◆ BitFields() [6/6]

BitFields ( BitFields< T > &&  )
defaultnoexcept

◆ ~BitFields()

~BitFields ( )
defaultnoexcept

Member Function Documentation

◆ clear() [1/2]

bool clear ( )
inline

Clear all bit-fields.

◆ clear() [2/2]

bool clear ( const T &  field)
inline

Clear a single bit-field.

◆ empty()

bool empty ( ) const
inline

◆ from_string()

void from_string ( const std::string &  str)
inline

Convert from string.

Note
This will clear any existing bit-field first.

◆ is_set()

constexpr EGT_NODISCARD bool is_set ( const T &  field) const
inlineconstexprnoexcept

◆ operator!=()

bool operator!= ( const BitFields< T > &  rhs) const
inline

◆ operator=() [1/2]

BitFields& operator= ( BitFields< T > &&  )
defaultnoexcept

◆ operator=() [2/2]

BitFields& operator= ( const BitFields< T > &  rhs)
inline

Assignment operator.

◆ operator==()

bool operator== ( const BitFields< T > &  rhs) const
inline

◆ operator|()

constexpr BitFields<T> operator| ( const T &  field) const
inlineconstexprnoexcept

Or operator.

◆ set()

bool set ( const T &  field)
inline

Set a single bit-field.

◆ to_string()

EGT_NODISCARD std::string to_string ( ) const
inline

Convert the bit-fields to strings.

◆ update()

bool update ( uint32_t  new_word)
inlineprotected

Member Data Documentation

◆ BITFIELDS_DELIMITER

constexpr static const char BITFIELDS_DELIMITER = '|'
staticconstexpr

Delimiter used to separate bit-fields in string representation.

◆ m_word

uint32_t m_word {0}
protected

◆ on_change

Signal on_change

Event signal.

Invoked when the bit-fields are changed.