Сравнение значений перечисления в C++
Оператор == для enum class проверяет,
совпали ли два значения одного типа. Ответ имеет тип
bool и его можно сразу вывести или передать
в условие.
Сравнивать можно только константы одного перечисления:
Color::red и Color::green дают false,
а две переменные с Color::red - true.
Запишем enum class Level и выведем результат
для двух одинаковых значений:
#include <iostream>
enum class Level { low, medium, high };
int main() {
Level a = Level::low;
Level b = Level::low;
std::cout << (a == b) << "\n";
return 0;
}
Тот же оператор показывает различие вариантов. Запишем две переменные с разными константами и выведем ответ:
#include <iostream>
enum class Level { low, medium, high };
int main() {
Level a = Level::low;
Level b = Level::high;
std::cout << (a == b) << "\n";
return 0;
}
Объявите enum class Size с константами
s, m и l.
Сравните Size::m и Size::m
и выведите результат.
Объявите enum class Role с константами
guest, user и admin.
Создайте Role left = Role::user и
Role right = Role::admin и выведите,
равны ли они.