Данное диагностическое правило основано на руководстве MISRA (Motor Industry Software Reliability Association) по разработке программного обеспечения.
Данное диагностическое правило актуально только для C++. Анализатор обнаружил совмещение явной и неявной инициализации элементов перечисления. Это может привести к неожиданному дублированию их значений.
Пример некорректного кода:
enum Suits { SUITS_SPADES = 1, SUITS_CLUBS, SUITS_DIAMONDS, SUITS_HEARTS, SUITS_UNKNOWN = 4 };
Подобная инициализация привела к тому, что элементы 'SUITS_HEARTS' и 'SUITS_UNKNOWN' имеют одинаковые значения. Может быть неочевидно, сделано это специально, или код содержит ошибку.
Анализатор не будет выдавать предупреждение, если:
Данная диагностика классифицируется как:
|