diff --git a/enum.h b/enum.h index fb3220e..0487a7b 100644 --- a/enum.h +++ b/enum.h @@ -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; } \ + \ } \ }