mirror of
https://github.com/google/flatbuffers.git
synced 2026-06-08 06:05:17 +00:00
Add constexpr for bitmask operators (#8037)
Co-authored-by: Derek Bailey <derekbailey@google.com>
This commit is contained in:
@@ -248,31 +248,31 @@ inline const char *flatbuffers_version_string() {
|
|||||||
|
|
||||||
// clang-format off
|
// clang-format off
|
||||||
#define FLATBUFFERS_DEFINE_BITMASK_OPERATORS(E, T)\
|
#define FLATBUFFERS_DEFINE_BITMASK_OPERATORS(E, T)\
|
||||||
inline E operator | (E lhs, E rhs){\
|
inline FLATBUFFERS_CONSTEXPR_CPP11 E operator | (E lhs, E rhs){\
|
||||||
return E(T(lhs) | T(rhs));\
|
return E(T(lhs) | T(rhs));\
|
||||||
}\
|
}\
|
||||||
inline E operator & (E lhs, E rhs){\
|
inline FLATBUFFERS_CONSTEXPR_CPP11 E operator & (E lhs, E rhs){\
|
||||||
return E(T(lhs) & T(rhs));\
|
return E(T(lhs) & T(rhs));\
|
||||||
}\
|
}\
|
||||||
inline E operator ^ (E lhs, E rhs){\
|
inline FLATBUFFERS_CONSTEXPR_CPP11 E operator ^ (E lhs, E rhs){\
|
||||||
return E(T(lhs) ^ T(rhs));\
|
return E(T(lhs) ^ T(rhs));\
|
||||||
}\
|
}\
|
||||||
inline E operator ~ (E lhs){\
|
inline FLATBUFFERS_CONSTEXPR_CPP11 E operator ~ (E lhs){\
|
||||||
return E(~T(lhs));\
|
return E(~T(lhs));\
|
||||||
}\
|
}\
|
||||||
inline E operator |= (E &lhs, E rhs){\
|
inline FLATBUFFERS_CONSTEXPR_CPP11 E operator |= (E &lhs, E rhs){\
|
||||||
lhs = lhs | rhs;\
|
lhs = lhs | rhs;\
|
||||||
return lhs;\
|
return lhs;\
|
||||||
}\
|
}\
|
||||||
inline E operator &= (E &lhs, E rhs){\
|
inline FLATBUFFERS_CONSTEXPR_CPP11 E operator &= (E &lhs, E rhs){\
|
||||||
lhs = lhs & rhs;\
|
lhs = lhs & rhs;\
|
||||||
return lhs;\
|
return lhs;\
|
||||||
}\
|
}\
|
||||||
inline E operator ^= (E &lhs, E rhs){\
|
inline FLATBUFFERS_CONSTEXPR_CPP11 E operator ^= (E &lhs, E rhs){\
|
||||||
lhs = lhs ^ rhs;\
|
lhs = lhs ^ rhs;\
|
||||||
return lhs;\
|
return lhs;\
|
||||||
}\
|
}\
|
||||||
inline bool operator !(E rhs) \
|
inline FLATBUFFERS_CONSTEXPR_CPP11 bool operator !(E rhs) \
|
||||||
{\
|
{\
|
||||||
return !bool(T(rhs)); \
|
return !bool(T(rhs)); \
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user