Надоело писать static_cast'ы и функции для конвертации enum ---> int.
А что если перегрузить оператор * :
enum class TestE
{
a,
b
};
unsigned int operator* (TestE x)
{
return TestE::a == x ? 0 : 1;
};
TestE asdf = TestE::b;
unsigned int v = *asdf;
unsigned int vv = *TestE::b;
Слишком неожиданно?
Кто-нибудь так делал?
Есть подводные камни?