Оператор присваивания для enum class
От: Dmitry Vinogradov  
Дата: 11.12.15 15:58
Оценка:
Подскажите, пожалуйста, как написать оператор присваивания для enum class?

Мне приходит в голову такой вариант:
#include "assert.h"

enum class A
{
  a1,
  a2
};


enum class B
{
  b1,
  b2
};


void operator <=(A& a, B b)
{
    switch(b)
    {
        case B::b1: a = A::a1; return;
        case B::b2: a = A::a2; return;
    }
    assert(false);
}

int main(int argc, char* argv[])
{
    A a = A::a1;
    B b = B::b2;
    a <= b;
    return 0;
}


Есть ли способ лучше?
Чем можно заменить switch в operator <=(A&, B) ?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.