Проверьте, содержит ли класс Enum определенный идентификаторC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Проверьте, содержит ли класс Enum определенный идентификатор

Сообщение Anonymous »

Я немного искал здесь, так и был удивительным, что я не нашел ни одного подобного вопроса. Рад за любые подсказки на случай, если на него уже ответили. Некоторые из них указывают константу TotalNum, как < /p>

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

enum class Foo : int
{
a,
b,
c,

totalNum
}
< /code>
У других нет этого, как < /p>
enum class Bar : bool
{
oneOption,
otherOption
}
< /code>
Тогда у меня есть функция, в основном такая, что < /p>
template 
EnumClassType typeToEnum (typename std::underlying_type::type value)
{
// If you hit this assertion, the value is outside of the valid enum range
assert (isPositiveAndBelow (value, decltype (value) (EnumClassType::totalNum)));

return EnumClassType (value);
}
Хотя это работает и имеет смысл для перечисления с указанностью TotalNum , я бы хотел пропустить это утверждение на случай, если в переводе нет такого идентификатора. Есть ли способ сделать это? Кодовая база в настоящее время использует C ++ 14, но решения C ++ 17 также приветствуются из -за предстоящего изменения компилятора.

Подробнее здесь: https://stackoverflow.com/questions/684 ... -identfier
Ответить

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

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

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

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

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