ALib C++ Library
Library Version: 2412 R0
Documentation generated by doxygen
Loading...
Searching...
No Matches
bitwise.hpp File Reference

Description:

This header file is part of module ALib Enums of the ALib C++ Library.

© 2013-2024 A-Worx GmbH, Germany. Published under Boost Software License.

Definition in file bitwise.hpp.

Include dependency graph for bitwise.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  T_EnumIsBitwise< TEnum, TEnableIf >
 

Namespaces

namespace  alib
 
namespace  alib::enums
 
namespace  alib::enums::bitwise
 

Macros

ALib Module Enums

The macros in this section are introduced by module ALib Enums and allow to specialize type-traits structs T_EnumRecords, T_EnumIsArithmetical, T_EnumIsBitwise and T_EnumIsIterable for scoped or non-scoped enum types.

Attention
  • All macros (except ALIB_ENUMS_UNDERLYING_TYPE) in this section have to be placed in global scope (outside of namespaces and types).
  • For technical reasons, neither the macros nor the concepts behind them are applicable to enum types that are defined as private or protected inner types of structs or classes.
#define ALIB_ENUMS_MAKE_BITWISE(TEnum)
 

Typedefs

template<typename TEnum >
using T_EnumIsBitwise = enums::T_EnumIsBitwise<TEnum>
 Type alias in namespace alib.
 

Functions

template<typename TEnum >
static constexpr int CountElements (TEnum value)
 
template<typename TEnum >
constexpr bool HasBits (TEnum element, TEnum selection) noexcept
 
template<typename TEnum >
constexpr bool HasOneOf (TEnum element, TEnum selection) noexcept
 
template<typename TEnum >
constexpr TEnum operator& (TEnum lhs, TEnum rhs) noexcept
 
template<typename TEnum >
constexpr TEnum operator&= (TEnum &lhs, TEnum rhs) noexcept
 
template<typename TEnum >
constexpr TEnum operator+ (TEnum lhs, TEnum rhs) noexcept
 
template<typename TEnum >
constexpr TEnum operator+= (TEnum &lhs, TEnum rhs) noexcept
 
template<typename TEnum >
constexpr TEnum operator- (TEnum lhs, TEnum rhs) noexcept
 
template<typename TEnum >
constexpr TEnum operator-= (TEnum &lhs, TEnum rhs) noexcept
 
template<typename TEnum >
constexpr TEnum operator^ (TEnum lhs, TEnum rhs) noexcept
 
template<typename TEnum >
constexpr TEnum operator^= (TEnum &lhs, TEnum rhs) noexcept
 
template<typename TEnum >
constexpr TEnum operator| (TEnum lhs, TEnum rhs) noexcept
 
template<typename TEnum >
constexpr bool operator|= (TEnum &lhs, TEnum rhs) noexcept
 
template<typename TEnum >
constexpr TEnum operator~ (TEnum op) noexcept