Enumerations
Enum.2
Используйте перечисления для представления наборов связанных именованных констант
Причина
Перечисление показывает, что его элементы связаны, и может быть именованным типом.
Пример
enum class Web_color { red = 0xFF0000, green = 0x00FF00, blue = 0x0000FF };
Примечание
Переключение по перечислению широко распространено, и компилятор может предупреждать о необычных паттернах в метках case. Например:
enum class Product_info { red = 0, purple = 1, blue = 2 };
void print(Product_info inf)
{
switch (inf) {
case Product_info::red: cout << "red"; break;
case Product_info::purple: cout << "purple"; break;
}
}
Такие неполные switch-операторы часто возникают из-за добавления нового элемента перечисления без соответствующего тестирования.
Контроль
- Отмечать
switch-операторы, в которыхcase-метки покрывают большинство, но не все элементы перечисления. - Отмечать
switch-операторы, в которыхcase-метки покрывают лишь несколько элементов перечисления безdefault.