Refureku
v2.2.0
C++17 runtime reflection library.
EnumMacros.h
1
8
#pragma once
9
10
#include <type_traits>
11
12
#define RFK_GENERATE_ENUM_OPERATORS(EnumName) \
13
constexpr EnumName operator|(EnumName flags1, EnumName flags2) noexcept \
14
{ \
15
using UnderlyingType = std::underlying_type_t<EnumName>; \
16
\
17
return static_cast<EnumName>(static_cast<UnderlyingType>(flags1) | static_cast<UnderlyingType>(flags2)); \
18
} \
19
\
20
constexpr EnumName operator&(EnumName flags1, EnumName flags2) noexcept \
21
{ \
22
using UnderlyingType = std::underlying_type_t<EnumName>; \
23
\
24
return static_cast<EnumName>(static_cast<UnderlyingType>(flags1) & static_cast<UnderlyingType>(flags2)); \
25
}
26
Refureku
Library
Include
Public
Refureku
Misc
EnumMacros.h
Generated by
1.9.3