День добрый.
Подскажите, пожалуйста,
есть 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;
}
Есть ли решения получше?