Emulación "enum class" o alternativa sólida para MSVC 10.0

Estoy buscando una solución hacky para el siguiente problema: GCC 4.4+ acepta el siguiente código c ++ 0x:

enum class my_enum
{
    value1,
    value2
};

Lo que permite el uso de esta manera:

my_enum e = my_enum::value1;

con todas las campanas y silbatos que esto trae. Me gustaría hacer que este código sea compatible con MSVC 2010, para que la sintaxis de uso no cambie. Ya reflexioné sobre esto antesaquí, y la respuesta aceptada funciona, pero la necesidad de los dos nombres diferentes para el enum y los valores de enum está matando la compatibilidad de los dos enfoques. Esto hace que, por supuesto, sea inutilizable reemplazar el código C ++ 0x como está. Me preguntaba si algunos#undef y#define truco podría solucionar esto, permitiéndomeutilizar enum classsimilar a la sintaxis (quizás sin la estricta seguridad de tipo, etc.), pero al menos la misma sintaxis. ¡Gracias!

Respuestas a la pregunta(3)

Su respuesta a la pregunta