CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
Flags.hpp File Reference
#include "CeresEngine/DataTypes.hpp"
#include "CeresEngine/Foundation/Hash.hpp"
#include <utility>

Go to the source code of this file.

Classes

struct  CeresEngine::Flags< Enum, Storage >
 Wrapper around an enum that allows simple use of bitwise logic operations. More...
 
class  CeresEngine::RawFlags
 

Namespaces

namespace  CeresEngine
 

Macros

#define CE_FLAGS_OPERATORS(Enum)   CE_FLAGS_OPERATORS_EXT(Enum, std::underlying_type_t<Enum>)
 Defines global operators for a Flags<Enum, Storage> implementation.
 
#define CE_FLAGS_OPERATORS_EXT(Enum, Storage)
 Defines global operators for a Flags<Enum, Storage> implementation.
 

Macro Definition Documentation

◆ CE_FLAGS_OPERATORS

#define CE_FLAGS_OPERATORS (   Enum)    CE_FLAGS_OPERATORS_EXT(Enum, std::underlying_type_t<Enum>)

Defines global operators for a Flags<Enum, Storage> implementation.

◆ CE_FLAGS_OPERATORS_EXT

#define CE_FLAGS_OPERATORS_EXT (   Enum,
  Storage 
)
Value:
[[nodiscard]] inline constexpr Flags<Enum, Storage> operator|(Enum a, Enum b) noexcept { \
Flags<Enum, Storage> r(a); \
r |= b; /* NOLINT */ \
return r; \
} \
\
[[nodiscard]] inline constexpr Flags<Enum, Storage> operator&(Enum a, Enum b) noexcept { \
Flags<Enum, Storage> r(a); \
r &= b; /* NOLINT */ \
return r; \
} \
\
[[nodiscard]] inline constexpr Flags<Enum, Storage> operator~(Enum a) noexcept { return ~Flags<Enum, Storage>(a); }
constexpr Byte operator~(const Byte arg) noexcept
Definition DataTypes.hpp:75

Defines global operators for a Flags<Enum, Storage> implementation.