Emulação "classe enum" ou alternativa sólida para MSVC 10.0
Estou procurando um tipo de solução hacky para o seguinte problema: O GCC 4.4+ aceita o seguinte código c ++ 0x:
enum class my_enum
{
value1,
value2
};
O que permite o uso assim:
my_enum e = my_enum::value1;
com todos os sinos e assobios que isso traz. Gostaria de tornar esse código compatível com o MSVC 2010, para que a sintaxe de uso não seja alterada. Eu já pensei nisso antesaqui, e a resposta aceita funciona, mas a necessidade dos dois nomes diferentes para os valores enum e enum está matando a compatibilidade das duas abordagens. Isso torna obviamente inutilizável substituir o código C ++ 0x como está. Gostaria de saber se alguns#undef
e#define
truques poderiam contornar isso, permitindo-meusar enum class
-com sintaxe (talvez sem o tipo estrito de segurança etc.), mas pelo menos a mesma sintaxe. Obrigado!