﻿# V2503\. MISRA\. Implicitly specified enumeration constants should be unique – consider specifying non\-unique constants explicitly\.

Диагностическое правило основано на руководстве [MISRA](https://www.misra.org.uk/) \(Motor Industry Software Reliability Association\) по разработке программного обеспечения\.

Анализатор обнаружил неуникальное значение среди неявно проинициализированных элементов перечисления, приводящее к дублированию значений констант\.

Пример некорректного кода:

```cpp
enum Suits 
{ 
  SUITS_SPADES = 1,
  SUITS_CLUBS,
  SUITS_DIAMONDS,  
  SUITS_HEARTS,
  SUITS_UNKNOWN = 4 
};
```

Подобная инициализация привела к тому, что элементы 'SUITS\_HEARTS' и 'SUITS\_UNKNOWN' имеют одинаковые значения\. Может быть неочевидно, сделано это специально, или код содержит ошибку\. 

Во избежание подобной ошибки следует явно инициализировать все элементы перечисления, имеющие неуникальные значения:

```cpp
enum Suits 
{ 
  SUITS_SPADES = 1,
  SUITS_CLUBS,
  SUITS_DIAMONDS,  
  SUITS_HEARTS = 4,
  SUITS_UNKNOWN = 4 
};
```