задача в следующем:
Код
enum command_t {CMD1, CMD2, CMD3 };
enum device1_cmd {CMD4 = CMD3, CMD5, CMD6};
enum device2_cmd {CMD7 = CMD3, CMD8, CMD9};
т.е. есть некий общий набор команд и его расширения специфичные для разных устройств.
Теперь если я пытаюсь сделать
device1_cmd = CMD9;
то получаю ошибку a value of type "device2_cmd" cannot be used to initialize an entity of type "device1_cmd". Что правильно, и ради этого все enum и затевались.
но такую же ошибку я получаю и на
device1_cmd = CMD1;
а вот этого не хочется. Т.е. хочется объявить оператор неявного преобразования из command_t в device1_cmd. Как это сделать?
P.S. явное преобразование не хочется потому что можно случайно преобразовать совсем не то, что нужно.