У меня есть класс enum
enum class Foo { A=1, B=18 , Z=42 };
Я хочу проверить, может ли некоторое целое число быть преобразовано в Foo
.
Как это сделать? это для проверки во время выполнения (целое число еще не известно во время компиляции)
Очевидно, что я могу сделать это трудным способом (написать функцию bool CheckEnum(Foo);
с переключателем big-ass, возвращающим true для всех случаев, кроме стандартного), но я надеялся на более элегантный механизм, который избегал бы такого большого количества записей. MPL или Boost.Preprocessor
было бы вполне приемлемым решением, но одно из которых я, к сожалению, очень мало знаю о