Я ищу хакерский вид решения следующей проблемы: GCC 4.4+ принимает следующий код С++ 0x:
enum class my_enum
{
value1,
value2
};
Это позволяет использовать следующее:
my_enum e = my_enum::value1;
со всеми этими звонками и свистами. Я хотел бы сделать этот код совместимым с MSVC 2010, так как синтаксис использования не изменяется. Я уже обдумывал это перед здесь, и принятый ответ работает, но необходимость в двух разных именах для перечисления и значений перечисления убивает совместимость двух подходы. Это делает его, конечно, непригодным для замены кода С++ 0x как есть. Я задавался вопросом, могут ли некоторые трюки #undef
и #define
обойти это, позволяя мне использовать синтаксис enum class
-like (возможно, без строгого типа безопасности и т.д.), Но по крайней мере тот же синтаксис. Спасибо!