Я бы хотел, чтобы компилятор выдавал предупреждение:
"Банан - это не цвет".
Я понимаю, что в контексте оператора switch ярлыки продвигаются до int, компилятор доволен 0, и ему все равно, является ли он "зеленым" или "бананом".
Я надеялся, что конверсия для GCC сделает трюк.
enum Color
{
Green = 0
};
enum Fruit
{
Banana = 0
};
int main()
{
Color c = Green;
switch (c)
{
case Banana:
std::cerr << "Banana" << std::endl;
break;
}
return 0;
}