Я читаю значение из потока байтов и хочу утверждать, что это значение находится в диапазоне перечислений. Мне было интересно, есть ли более общий подход, чем тот, который приведен ниже.Как утверждать, находится ли значение в пределах диапазона перечислений
int nval = ReadValue();
Assert(nval);
bool Assert(nval)
{
if(nval == zero || nval == one || nval==two || (nval>=reserved_low && nval <= reserved_high))
return true;
return false
}
enum Foo
{
zero = 0,
one = 1,
two = 2,
reserved_low = 3,
reserved_high = 255,
}
Мне кажется, что вам нужно только 'nval> = zero && nval <= reserved_high' – EdChum
Вы можете указать дополнительные константы в перечислении' Foo_min = zero, Foo_max = reserved_high'. – StoryTeller
Пожалуйста, найдите свой вопрос на SO перед запросом. (Http://stackoverflow.com/questions/2102582/how-can-i-count-the-items-in-an-enum) – Warezovvv