Определение, приводит ли приведение int к перечислению к неперечислимому значению

Допустим, у меня есть что-то вроде этого:

enum CardColor { HEARTS, DIAMONDS, CLUBS, SPADES};

CardColor MyColor = static_cast<CardColor>(100);

Есть ли (простой) способ обнаружения, во время компиляции или во время выполнения, что значение MyColor не соответствует ни одному из перечисленных значений?

И в более общем плане, если значения перечисления не следуют друг за другом, например:

enum CardColor { HEARTS = 0, DIAMONDS, CLUBS = 4, SPADES};
12
задан Jérôme 25 January 2011 в 16:26
поделиться