deaddev-bitmask 1.0.1
C++ bitmask library
Loading...
Searching...
No Matches
deaddev::bitmask< T, typename > Class Template Reference

Bitmask class type. More...

#include <bitmask.hpp>

Public Types

using mask_type = ::std::underlying_type_t<T>
 underlying type of enum
 
using enum_type = T
 original enum
 

Public Member Functions

constexpr bitmask () noexcept=default
 default constructor
 
constexpr bitmask (const bitmask &) noexcept=default
 copy constructor
 
constexpr bitmask (bitmask &&) noexcept=default
 move constructor
 
constexpr bitmaskoperator= (const bitmask &) noexcept=default
 copy assignment operator
 
constexpr bitmaskoperator= (bitmask &&) noexcept=default
 move assignment operator
 
constexpr bitmask (enum_type value) noexcept
 mask from enum constructor
 
constexpr bitmask (mask_type value) noexcept
 mask from integral type assignment operator
 
DEADDEV_NODISCARD constexpr operator enum_type () const noexcept
 explicit cast to original enum type
 
DEADDEV_NODISCARD constexpr operator mask_type () const noexcept
 explicit cast to integral type
 
DEADDEV_NODISCARD constexpr bool operator== (mask_type mask) const noexcept
 comparison operator
 
DEADDEV_NODISCARD constexpr bool operator!= (mask_type mask) const noexcept
 comparison operator
 
DEADDEV_NODISCARD constexpr bool operator<= (mask_type mask) const noexcept
 comparison operator
 
DEADDEV_NODISCARD constexpr bool operator>= (mask_type mask) const noexcept
 comparison operator
 
DEADDEV_NODISCARD constexpr bool operator< (mask_type mask) const noexcept
 comparison operator
 
DEADDEV_NODISCARD constexpr bool operator> (mask_type mask) const noexcept
 comparison operator
 
DEADDEV_NODISCARD constexpr bool operator== (bitmask other) const noexcept
 comparison operator
 
DEADDEV_NODISCARD constexpr bool operator!= (bitmask other) const noexcept
 comparison operator
 
DEADDEV_NODISCARD constexpr bool operator<= (bitmask other) const noexcept
 comparison operator
 
DEADDEV_NODISCARD constexpr bool operator>= (bitmask other) const noexcept
 comparison operator
 
DEADDEV_NODISCARD constexpr bool operator< (bitmask other) const noexcept
 comparison operator
 
DEADDEV_NODISCARD constexpr bool operator> (bitmask other) const noexcept
 comparison operator
 
DEADDEV_NODISCARD constexpr bitmask operator~ () const noexcept
 comparison operator
 
DEADDEV_NODISCARD constexpr bitmask operator^ (bitmask other) const noexcept
 comparison operator
 
DEADDEV_NODISCARD constexpr bitmask operator| (bitmask other) const noexcept
 comparison operator
 
DEADDEV_NODISCARD constexpr bitmask operator& (bitmask other) const noexcept
 comparison operator
 
constexpr bitmaskoperator^= (bitmask other) noexcept
 comparison operator
 
constexpr bitmaskoperator|= (bitmask other) noexcept
 comparison operator
 
constexpr bitmaskoperator&= (bitmask other) noexcept
 comparison operator
 
DEADDEV_NODISCARD constexpr bitmask operator^ (enum_type other) const noexcept
 comparison operator
 
DEADDEV_NODISCARD constexpr bitmask operator| (enum_type other) const noexcept
 comparison operator
 
DEADDEV_NODISCARD constexpr bitmask operator& (enum_type other) const noexcept
 comparison operator
 
constexpr bitmaskoperator^= (enum_type other) noexcept
 comparison operator
 
constexpr bitmaskoperator|= (enum_type other) noexcept
 comparison operator
 
constexpr bitmaskoperator&= (enum_type other) noexcept
 comparison operator
 
DEADDEV_NODISCARD constexpr bool is_set (enum_type flag) const noexcept
 Checks if an enum value is in the mask.
 
DEADDEV_NODISCARD constexpr bool is_set (bitmask other) const noexcept
 Checks if all flags from other bit mask is set in this bit mask.
 
constexpr bitmaskset (enum_type flag) noexcept
 Combine bit mask with an enum value.
 
constexpr bitmaskset (bitmask other) noexcept
 Combine bit mask with an enum value.
 
constexpr bitmaskremove (enum_type flag) noexcept
 Combine bit mask with an enum value.
 
constexpr bitmaskremove (bitmask other) noexcept
 Combine bit mask with an enum value.
 

Static Public Member Functions

DEADDEV_NODISCARD static DEADDEV_CONSTEVAL bitmask all_flags () noexcept
 returns bitmask with all flags set
 

Detailed Description

template<typename T, typename = typename ::std::enable_if<::deaddev::details::is_bitmask_v<T>>::type>
class deaddev::bitmask< T, typename >

Bitmask class type.

Wrapper for enums to use their values as bit flags/masks It e

Template Parameters
TEnum type
typename

Constructor & Destructor Documentation

◆ bitmask() [1/2]

template<typename T , typename = typename ::std::enable_if<::deaddev::details::is_bitmask_v<T>>::type>
deaddev::bitmask< T, typename >::bitmask ( enum_type value)
inlineconstexprnoexcept

mask from enum constructor

implicit cast from enum_type

◆ bitmask() [2/2]

template<typename T , typename = typename ::std::enable_if<::deaddev::details::is_bitmask_v<T>>::type>
deaddev::bitmask< T, typename >::bitmask ( mask_type value)
inlineexplicitconstexprnoexcept

mask from integral type assignment operator

explicit cast from mask_type

Member Function Documentation

◆ all_flags()

template<typename T , typename = typename ::std::enable_if<::deaddev::details::is_bitmask_v<T>>::type>
DEADDEV_NODISCARD static DEADDEV_CONSTEVAL bitmask deaddev::bitmask< T, typename >::all_flags ( )
inlinestaticnoexcept

returns bitmask with all flags set

Returns
bitmask all flags combination

◆ is_set() [1/2]

template<typename T , typename = typename ::std::enable_if<::deaddev::details::is_bitmask_v<T>>::type>
DEADDEV_NODISCARD constexpr bool deaddev::bitmask< T, typename >::is_set ( bitmask< T, typename > other) const
inlineconstexprnoexcept

Checks if all flags from other bit mask is set in this bit mask.

Performs comparison between the other value and bitwise and between this value and the other value

Parameters
otherbit mask
Returns
true all flags is in the mask
false some or all flags is not in the mask

◆ is_set() [2/2]

template<typename T , typename = typename ::std::enable_if<::deaddev::details::is_bitmask_v<T>>::type>
DEADDEV_NODISCARD constexpr bool deaddev::bitmask< T, typename >::is_set ( enum_type flag) const
inlineconstexprnoexcept

Checks if an enum value is in the mask.

Performs comparison between the flag and bitwise and between this value and flag

Parameters
flagenum value
Returns
true flag is in the mask
false flag is not in the mask

◆ operator enum_type()

template<typename T , typename = typename ::std::enable_if<::deaddev::details::is_bitmask_v<T>>::type>
DEADDEV_NODISCARD constexpr deaddev::bitmask< T, typename >::operator enum_type ( ) const
inlineexplicitconstexprnoexcept

explicit cast to original enum type

Warning
returned value is not a valid enum member in most cases!
Returns
enum_type bitmask value as enum type

◆ operator mask_type()

template<typename T , typename = typename ::std::enable_if<::deaddev::details::is_bitmask_v<T>>::type>
DEADDEV_NODISCARD constexpr deaddev::bitmask< T, typename >::operator mask_type ( ) const
inlineexplicitconstexprnoexcept

explicit cast to integral type

Warning
returned value is not a valid enum member in most cases!
Returns
mask_type bitmask value as integral type

◆ remove() [1/2]

template<typename T , typename = typename ::std::enable_if<::deaddev::details::is_bitmask_v<T>>::type>
bitmask & deaddev::bitmask< T, typename >::remove ( bitmask< T, typename > other)
inlineconstexprnoexcept

Combine bit mask with an enum value.

Performs call to bitwise "or" assignment operator

Parameters
otherbit mask
Returns
bitmask& call chaining

◆ remove() [2/2]

template<typename T , typename = typename ::std::enable_if<::deaddev::details::is_bitmask_v<T>>::type>
bitmask & deaddev::bitmask< T, typename >::remove ( enum_type flag)
inlineconstexprnoexcept

Combine bit mask with an enum value.

Performs call to bitwise "or" assignment operator

Parameters
flagenum value
Returns
bitmask& call chaining

◆ set() [1/2]

template<typename T , typename = typename ::std::enable_if<::deaddev::details::is_bitmask_v<T>>::type>
bitmask & deaddev::bitmask< T, typename >::set ( bitmask< T, typename > other)
inlineconstexprnoexcept

Combine bit mask with an enum value.

Performs call to bitwise "or" assignment operator

Parameters
otherbit mask
Returns
bitmask& call chaining

◆ set() [2/2]

template<typename T , typename = typename ::std::enable_if<::deaddev::details::is_bitmask_v<T>>::type>
bitmask & deaddev::bitmask< T, typename >::set ( enum_type flag)
inlineconstexprnoexcept

Combine bit mask with an enum value.

Performs call to bitwise "or" assignment operator

Parameters
flagenum value
Returns
bitmask& call chaining

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