Цитата(v_shamaev @ Jan 26 2007, 18:20)

Цитата(Сергей Борщ @ Jan 26 2007, 18:55)

device1_cmd = CMD9;
Это же название типа, а не имя переменной. Определите переменную типа device1_cmd, а уж ей присваивайте значение
Извиняюсь, кончно же у меня что-то вроде
Код
device1_cmd cmd1;
cmd1 = CMD5; // проходит, ибо "родное"
cmd1 = CMD9; // не проходит, и правильно
cmd1 = CMD1; // не проходит, а я хочу чтоб проходило.
Вопрос - как сделать так, чтобы значение типа command_t неявно(!) при необходимости преобразовывалось к device1_cmd. С классами понятно - добавил конструктор и все. А как с enum?
Цитата(zltigo @ Jan 26 2007, 19:30)

Код
aaaa = (device1_cmd)CMD1;
По идее должно работать
Да, работает. Но меня это не устраивает. Для чего заводится enum? Чтобы ненароком не присвоить переменной значение которого она никогда не может иметь. Ошибка отлавливается компилятором и сразу. Если я делаю приведение типов вручную, компилятор уже ничего не проверяет. Он пропустит и
Код
aaaa = (device1_cmd)CMD9;
а я хочу этого избежать.