NAIA
|
#include <bitset>
#include <string>
#include <type_traits>
Go to the source code of this file.
Classes | |
struct | EnableBitMaskOperators< Enum > |
Macros | |
#define | ENABLE_BITMASK_OPERATORS(x) template <> struct EnableBitMaskOperators<x> { static const bool enable = true; }; |
Type safe implementation of a bitmask enum. More... | |
Functions | |
template<typename Enum > | |
std::enable_if < EnableBitMaskOperators< Enum > ::enable, Enum >::type | operator| (const Enum lhs, const Enum rhs) |
template<typename Enum > | |
std::enable_if < EnableBitMaskOperators< Enum > ::enable, Enum >::type | operator& (const Enum lhs, const Enum rhs) |
template<typename Enum > | |
std::enable_if < EnableBitMaskOperators< Enum > ::enable, Enum >::type | operator^ (const Enum lhs, const Enum rhs) |
template<typename Enum > | |
std::enable_if < EnableBitMaskOperators< Enum > ::enable, Enum >::type | operator~ (const Enum rhs) |
template<typename Enum > | |
std::enable_if < EnableBitMaskOperators< Enum > ::enable, Enum >::type | operator!= (const Enum lhs, const Enum rhs) |
template<typename Enum > | |
std::enable_if < EnableBitMaskOperators< Enum > ::enable, Enum >::type | operator|= (Enum &lhs, const Enum rhs) |
template<typename Enum > | |
std::enable_if < EnableBitMaskOperators< Enum > ::enable, Enum >::type | operator&= (Enum &lhs, const Enum rhs) |
template<typename Enum > | |
std::enable_if < EnableBitMaskOperators< Enum > ::enable, Enum >::type | operator^= (Enum &lhs, const Enum rhs) |
template<typename Enum > | |
std::enable_if < EnableBitMaskOperators< Enum > ::enable, bool >::type | MatchAnyBit (const Enum test, const Enum ones, const Enum zeroes=static_cast< Enum >(0)) |
template<typename Enum > | |
std::enable_if < EnableBitMaskOperators< Enum > ::enable, bool >::type | MatchAllBits (const Enum test, const Enum ones, const Enum zeroes=static_cast< Enum >(0)) |
template<int N, typename Enum > | |
std::enable_if < EnableBitMaskOperators< Enum > ::enable, std::string >::type | to_string_binary (const Enum rhs) |
#define ENABLE_BITMASK_OPERATORS | ( | x | ) | template <> struct EnableBitMaskOperators<x> { static const bool enable = true; }; |
Type safe implementation of a bitmask enum.
Adapted form https://wiggling-bits.net/using-enum-classes-as-type-safe-bitmasks/
std::enable_if<EnableBitMaskOperators<Enum>::enable, bool>::type MatchAllBits | ( | const Enum | test, |
const Enum | ones, | ||
const Enum | zeroes = static_cast<Enum>(0) |
||
) |
Definition at line 87 of file bitmask.h.
Referenced by NAIA::HeaderData::CheckMask(), NAIA::Event::CheckMask(), and NAIA::NtpSelector::UProcessCut().
std::enable_if<EnableBitMaskOperators<Enum>::enable, bool>::type MatchAnyBit | ( | const Enum | test, |
const Enum | ones, | ||
const Enum | zeroes = static_cast<Enum>(0) |
||
) |
std::enable_if<EnableBitMaskOperators<Enum>::enable, Enum>::type operator!= | ( | const Enum | lhs, |
const Enum | rhs | ||
) |
std::enable_if<EnableBitMaskOperators<Enum>::enable, Enum>::type operator& | ( | const Enum | lhs, |
const Enum | rhs | ||
) |
std::enable_if<EnableBitMaskOperators<Enum>::enable, Enum>::type operator&= | ( | Enum & | lhs, |
const Enum | rhs | ||
) |
std::enable_if<EnableBitMaskOperators<Enum>::enable, Enum>::type operator^ | ( | const Enum | lhs, |
const Enum | rhs | ||
) |
std::enable_if<EnableBitMaskOperators<Enum>::enable, Enum>::type operator^= | ( | Enum & | lhs, |
const Enum | rhs | ||
) |
std::enable_if<EnableBitMaskOperators<Enum>::enable, Enum>::type operator| | ( | const Enum | lhs, |
const Enum | rhs | ||
) |
std::enable_if<EnableBitMaskOperators<Enum>::enable, Enum>::type operator|= | ( | Enum & | lhs, |
const Enum | rhs | ||
) |
std::enable_if<EnableBitMaskOperators<Enum>::enable, Enum>::type operator~ | ( | const Enum | rhs | ) |
std::enable_if<EnableBitMaskOperators<Enum>::enable, std::string>::type to_string_binary | ( | const Enum | rhs | ) |