Преобразование enum в enum
От: YuriyT Украина  
Дата: 02.01.08 15:25
Оценка:
День добрый.
Подскажите, пожалуйста,
есть enum в разных пространствах:
namespace NS1
{
  enum Color {red, green};
};

namespace NS2
{
  enum Color {red, green};
};

нужно преобразовать NS1::Color в NS2::Color,
один из вариантов:
NS1::Color val = NS1::red;
NS2::Color val2(val1);

не нравится тем что NS1::Color может измениться, позабыв об NS2::Color.
либо
 
bool convert(NS1::Color& from, NS2::Color& to)
{
   bool isOk = true;
   switch(rom)
   {
       NS1::red:   
          to = NS2::red;  
          break;
       NS1::green: 
          to = NS2::green;            
          break;
       default:    
          isOk = false;
   }
   return isOk;
}

Есть ли решения получше?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.