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!

questionAnswers(3)

yourAnswerToTheQuestion