Made comparison operators global to simplify them.

This commit is contained in:
Anton Bachin 2015-05-23 10:17:07 -05:00
parent d01aacd454
commit 96c274a708

38
enum.h
View File

@ -441,31 +441,6 @@ struct _Base { \
\
_ENUM_CONSTEXPR _Base(_enumerated value) : _value(value) { } \
\
_ENUM_CONSTEXPR bool operator ==(const _Base &other) const \
{ return _value == other._value; } \
_ENUM_CONSTEXPR bool operator ==(_enumerated value) const \
{ return _value == value; } \
_ENUM_CONSTEXPR bool operator !=(const _Base &other) const \
{ return !(*this == other); } \
_ENUM_CONSTEXPR bool operator !=(_enumerated value) const \
{ return !(*this == value); } \
_ENUM_CONSTEXPR bool operator <(const _Base &other) const \
{ return _value < other._value; } \
_ENUM_CONSTEXPR bool operator <(_enumerated value) const \
{ return _value < value; } \
_ENUM_CONSTEXPR bool operator <=(const _Base &other) const \
{ return _value <= other._value; } \
_ENUM_CONSTEXPR bool operator <=(_enumerated value) const \
{ return _value <= value; } \
_ENUM_CONSTEXPR bool operator >(const _Base &other) const \
{ return _value > other._value; } \
_ENUM_CONSTEXPR bool operator >(_enumerated value) const \
{ return _value > value; } \
_ENUM_CONSTEXPR bool operator >=(const _Base &other) const \
{ return _value >= other._value; } \
_ENUM_CONSTEXPR bool operator >=(_enumerated value) const \
{ return _value >= value; } \
\
_ENUM_REPRESENTATION(Integral) _value; \
\
_ENUM_NOT_DEFAULT_CONSTRUCTIBLE(_Base) \
@ -895,6 +870,19 @@ namespace _data_ ## EnumType { \
_ENUM_CONSTEXPR const EnumType operator +(_ENUM_NS(EnumType)::_Base base) \
{ return (EnumType)base; } \
\
_ENUM_CONSTEXPR bool operator ==(const EnumType &a, const EnumType &b) \
{ return a._value == b._value; } \
_ENUM_CONSTEXPR bool operator !=(const EnumType &a, const EnumType &b) \
{ return a._value != b._value; } \
_ENUM_CONSTEXPR bool operator <(const EnumType &a, const EnumType &b) \
{ return a._value < b._value; } \
_ENUM_CONSTEXPR bool operator <=(const EnumType &a, const EnumType &b) \
{ return a._value <= b._value; } \
_ENUM_CONSTEXPR bool operator >(const EnumType &a, const EnumType &b) \
{ return a._value > b._value; } \
_ENUM_CONSTEXPR bool operator >=(const EnumType &a, const EnumType &b) \
{ return a._value >= b._value; } \
\
} \
}