игрался тут с енумами с сильной типизацией. в итоге:
struct StrongEnum
{
enum EnumType
{
eValue1,
eValue2
};
EnumType value_;
StrongEnum() : value_(eValue1) {}
StrongEnum(EnumType e) : value_(e) {}
bool operator==(EnumType e) const { return value_ == e; }
bool operator!=(EnumType e) const { return value_ != e; }
bool operator==(StrongEnum e) const { return value_ == e.value_; } // возможно лишнее
bool operator!=(StrongEnum e) const { return value_ != e.value_; } // возможно лишнее
StrongEnum & operator=(EnumType e)
{
value_ = e;
return *this;
}
};
хотел оформить шаблоном, но были некоторые проблемы так что пока так.
может у кого еще есть, примеры?