Получение максимального значения перечисления [дубликат]C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Получение максимального значения перечисления [дубликат]

Сообщение Anonymous »

У меня есть код C++, который использует битовый набор для хранения значений перечисления, которые были найдены в моих структурах данных (на самом деле это немного сложнее, но это не имеет значения для вопроса).
Это означает, что когда у меня есть такое перечисление:

Код: Выделить всё

enum Color
{
RED
, GREEN
, BLUE
};
Я хочу определить свой битовый набор следующим образом:

Код: Выделить всё

std::bitset
Конечно, я не хочу жестко запрограммировать значение 3.
В некоторых случаях я могу просто добавить «терминатор» в перечисление, например:

Код: Выделить всё

enum Color
{
RED
, GREEN
, BLUE
, _COLOR_TERMINATOR
};
А я могу написать вот что:

Код: Выделить всё

std::bitset
Но я не могу сделать это во всех своих перечислениях. Если бы я сделал это с некоторыми из моих перечислений, средства проверки кода (например, Lint) стали бы жаловаться, что не все значения перечисления используются в операторе переключения.
Есть ли способ получить максимум значений в перечислении, не меняя ничего в самом перечислении? Например. что-то вроде std::max?
Использование Visual Studio 2013 и C++.

Подробнее здесь: https://stackoverflow.com/questions/234 ... of-an-enum
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»