open62541pp 0.18.0
C++ wrapper of open62541
Loading...
Searching...
No Matches
Classes | Functions
Bitmask abstraction

Detailed Description

Classes

struct  opcua::IsBitmaskEnum< T >
 
class  opcua::Bitmask< T >
 

Functions

template<typename T >
constexpr std::false_type opcua::isBitmaskEnum (T)
 
template<typename T >
constexpr std::enable_if_t< IsBitmaskEnum< T >::value, T > operator& (T lhs, T rhs) noexcept
 
template<typename T >
constexpr std::enable_if_t< IsBitmaskEnum< T >::value, T > operator| (T lhs, T rhs) noexcept
 
template<typename T >
constexpr std::enable_if_t< IsBitmaskEnum< T >::value, T > operator^ (T lhs, T rhs) noexcept
 
template<typename T >
constexpr std::enable_if_t< IsBitmaskEnum< T >::value, T > operator~ (T rhs) noexcept
 
template<typename T >
constexpr std::enable_if_t< IsBitmaskEnum< T >::value, T > operator|= (T &lhs, T rhs) noexcept
 
template<typename T >
constexpr std::enable_if_t< IsBitmaskEnum< T >::value, T > operator&= (T &lhs, T rhs) noexcept
 
template<typename T >
constexpr std::enable_if_t< IsBitmaskEnum< T >::value, T > operator^= (T &lhs, T rhs) noexcept
 
template<typename T >
constexpr bool operator== (Bitmask< T > lhs, Bitmask< T > rhs) noexcept
 
template<typename T >
constexpr bool operator== (Bitmask< T > lhs, T rhs) noexcept
 
template<typename T >
constexpr bool operator== (T lhs, Bitmask< T > rhs) noexcept
 
template<typename T >
constexpr bool operator== (Bitmask< T > lhs, std::underlying_type_t< T > rhs) noexcept
 
template<typename T >
constexpr bool operator== (std::underlying_type_t< T > lhs, Bitmask< T > rhs) noexcept
 
template<typename T >
constexpr bool operator!= (Bitmask< T > lhs, Bitmask< T > rhs) noexcept
 
template<typename T >
constexpr bool operator!= (Bitmask< T > lhs, T rhs) noexcept
 
template<typename T >
constexpr bool operator!= (T lhs, Bitmask< T > rhs) noexcept
 
template<typename T >
constexpr bool operator!= (Bitmask< T > lhs, std::underlying_type_t< T > rhs) noexcept
 
template<typename T >
constexpr bool operator!= (std::underlying_type_t< T > lhs, Bitmask< T > rhs) noexcept
 

Function Documentation

◆ isBitmaskEnum()

template<typename T >
constexpr std::false_type opcua::isBitmaskEnum ( )
constexpr

Function template to define an enum (class) as a bitmask and allow bitwise operations.

The function must be overloaded for a specific enum type to return std::true_type.

This is an additional opt-in mechanism to specializations of the IsBitmaskEnum trait and can also be used in other namespaces.

◆ operator&()

template<typename T >
constexpr std::enable_if_t< IsBitmaskEnum< T >::value, T > operator& ( lhs,
rhs 
)
related

Definition at line 52 of file bitmask.hpp.

◆ operator|()

template<typename T >
constexpr std::enable_if_t< IsBitmaskEnum< T >::value, T > operator| ( lhs,
rhs 
)
related

Definition at line 59 of file bitmask.hpp.

◆ operator^()

template<typename T >
constexpr std::enable_if_t< IsBitmaskEnum< T >::value, T > operator^ ( lhs,
rhs 
)
related

Definition at line 66 of file bitmask.hpp.

◆ operator~()

template<typename T >
constexpr std::enable_if_t< IsBitmaskEnum< T >::value, T > operator~ ( rhs)
related

Definition at line 73 of file bitmask.hpp.

◆ operator|=()

template<typename T >
constexpr std::enable_if_t< IsBitmaskEnum< T >::value, T > operator|= ( T &  lhs,
rhs 
)
related

Definition at line 82 of file bitmask.hpp.

◆ operator&=()

template<typename T >
constexpr std::enable_if_t< IsBitmaskEnum< T >::value, T > operator&= ( T &  lhs,
rhs 
)
related

Definition at line 90 of file bitmask.hpp.

◆ operator^=()

template<typename T >
constexpr std::enable_if_t< IsBitmaskEnum< T >::value, T > operator^= ( T &  lhs,
rhs 
)
related

Definition at line 98 of file bitmask.hpp.

◆ operator==() [1/5]

template<typename T >
constexpr bool operator== ( Bitmask< T >  lhs,
Bitmask< T >  rhs 
)
related

Definition at line 231 of file bitmask.hpp.

◆ operator==() [2/5]

template<typename T >
constexpr bool operator== ( Bitmask< T >  lhs,
rhs 
)
related

Definition at line 237 of file bitmask.hpp.

◆ operator==() [3/5]

template<typename T >
constexpr bool operator== ( lhs,
Bitmask< T >  rhs 
)
related

Definition at line 243 of file bitmask.hpp.

◆ operator==() [4/5]

template<typename T >
constexpr bool operator== ( Bitmask< T >  lhs,
std::underlying_type_t< T >  rhs 
)
related

Definition at line 249 of file bitmask.hpp.

◆ operator==() [5/5]

template<typename T >
constexpr bool operator== ( std::underlying_type_t< T >  lhs,
Bitmask< T >  rhs 
)
related

Definition at line 255 of file bitmask.hpp.

◆ operator!=() [1/5]

template<typename T >
constexpr bool operator!= ( Bitmask< T >  lhs,
Bitmask< T >  rhs 
)
related

Definition at line 261 of file bitmask.hpp.

◆ operator!=() [2/5]

template<typename T >
constexpr bool operator!= ( Bitmask< T >  lhs,
rhs 
)
related

Definition at line 267 of file bitmask.hpp.

◆ operator!=() [3/5]

template<typename T >
constexpr bool operator!= ( lhs,
Bitmask< T >  rhs 
)
related

Definition at line 273 of file bitmask.hpp.

◆ operator!=() [4/5]

template<typename T >
constexpr bool operator!= ( Bitmask< T >  lhs,
std::underlying_type_t< T >  rhs 
)
related

Definition at line 279 of file bitmask.hpp.

◆ operator!=() [5/5]

template<typename T >
constexpr bool operator!= ( std::underlying_type_t< T >  lhs,
Bitmask< T >  rhs 
)
related

Definition at line 285 of file bitmask.hpp.