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 class
similar a la sintaxis (quizás sin la estricta seguridad de tipo, etc.), pero al menos la misma sintaxis. ¡Gracias!