Re[3]: Преобразование enum в enum
От: Tonal- Россия www.promsoft.ru
Дата: 03.01.08 09:37
Оценка:
Здравствуйте, YuriyT, Вы писали:
T>>Если имеется в виду, что тебе нужно, чтобы одноимённые члены перечислений преобразовывались друг в друга, то можно немного подправить код из Копирование по маске
Автор: Tonal-
Дата: 22.12.07
.

YT>Да, это и имеется в виду.
YT>Нельзя использовать boost, stl, исключения.
YT>Должно работать в VC6
VC6 вроде только SFINAE не разумеет. Остальное несложно руками.
Но и SFINAE там нужно только для случая, когда в перечислении источнике нет какого-нибудь имени из получателя (предпологается что enum_traits для получателя).
Если наборы имён совпадают, можно обойтись.
Плюс этого решения в том, что не одно пространство имён изменять не нужно.
Но и если тебе подходит решение с using-ом — лучше взять его — гораздо проще и прозрачнее. К тому же совпадение по значениям.
Хотя, если таки хочется исеть "своё" перечисление в каждом, то можно так:
namespace NS2 {
  enum Color {red=NS1::red, green=NS1::green};
};

И потом static_cast.
... << RSDN@Home 1.2.0 alpha rev. 786>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.