C++ Utilities  5.10.5
Useful C++ classes and routines such as argument parser, IO and conversion utilities
Classes | Namespaces | Macros | Functions
flagenumclass.h File Reference
#include "./traits.h"
Include dependency graph for flagenumclass.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  CppUtilities::IsFlagEnumClass< T >
 The IsFlagEnumClass class is used to decide whether to enable operations for flag enums for \tp T. More...
 

Namespaces

 CppUtilities
 Contains all utilities provides by the c++utilities library.
 
 CppUtilities::FlagEnumClassOperations
 The FlagEnumClassOperations namespace contains operations for flag enums.
 

Macros

#define CPP_UTILITIES_MARK_FLAG_ENUM_CLASS(Namespace, EnumClassType)
 

Functions

template<typename FlagEnumClass , Traits::EnableIf< IsFlagEnumClass< FlagEnumClass >> * = nullptr>
constexpr FlagEnumClass CppUtilities::FlagEnumClassOperations::operator| (FlagEnumClass lhs, FlagEnumClass rhs)
 
template<typename FlagEnumClass , Traits::EnableIf< IsFlagEnumClass< FlagEnumClass >> * = nullptr>
constexpr bool CppUtilities::FlagEnumClassOperations::operator& (FlagEnumClass lhs, FlagEnumClass rhs)
 
template<typename FlagEnumClass , Traits::EnableIf< IsFlagEnumClass< FlagEnumClass >> * = nullptr>
constexpr FlagEnumClass & CppUtilities::FlagEnumClassOperations::operator|= (FlagEnumClass &lhs, FlagEnumClass rhs)
 
template<typename FlagEnumClass , Traits::EnableIf< IsFlagEnumClass< FlagEnumClass >> * = nullptr>
constexpr FlagEnumClass & CppUtilities::FlagEnumClassOperations::operator+= (FlagEnumClass &lhs, FlagEnumClass rhs)
 
template<typename FlagEnumClass , Traits::EnableIf< IsFlagEnumClass< FlagEnumClass >> * = nullptr>
constexpr FlagEnumClass & CppUtilities::FlagEnumClassOperations::operator-= (FlagEnumClass &lhs, FlagEnumClass rhs)
 
template<typename FlagEnumClass , Traits::EnableIf< IsFlagEnumClass< FlagEnumClass >> * = nullptr>
constexpr FlagEnumClass & CppUtilities::modFlagEnum (FlagEnumClass &flagVariable, FlagEnumClass relevantFlags, bool value)
 Sets the specified relevantFlags in the specified flagVariable to the specified value. More...
 

Macro Definition Documentation

◆ CPP_UTILITIES_MARK_FLAG_ENUM_CLASS

#define CPP_UTILITIES_MARK_FLAG_ENUM_CLASS (   Namespace,
  EnumClassType 
)
Value:
namespace CppUtilities { \
template <> struct IsFlagEnumClass<EnumClassType> : Traits::Bool<true> { \
}; \
} \
namespace Namespace { \
using CppUtilities::FlagEnumClassOperations::operator|; \
using CppUtilities::FlagEnumClassOperations::operator&; \
using CppUtilities::FlagEnumClassOperations::operator|=; \
using CppUtilities::FlagEnumClassOperations::operator+=; \
using CppUtilities::FlagEnumClassOperations::operator-=; \
}
Contains all utilities provides by the c++utilities library.

Definition at line 22 of file flagenumclass.h.