validate integer — это некоторый элемент класса enum (C++11)

У меня есть класс enum

enum class Foo { A=1, B=18 , Z=42 };

Я хочу проверить, может ли некоторое целое число быть преобразовано в Foo. Как это сделать? это для проверки во время выполнения (целое число еще не известно во время компиляции)

Очевидно, что я могу сделать это трудным способом (написать функцию bool CheckEnum(Foo); с переключателем big-ass, возвращающим true для всех случаев, кроме стандартного), но я надеялся на более элегантный механизм, который избегал бы такого большого количества записей. MPL или Boost.Preprocessor было бы вполне приемлемым решением, но одно из которых я, к сожалению, очень мало знаю о

8
задан ildjarn 22 November 2011 в 19:44
поделиться