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

This diagnostic rule is based on the software development guidelines developed by [MISRA](https://www.misra.org.uk/) \(Motor Industry Software Reliability Association\)\.

The analyzer has detected a non\-unique value among implicitly initialized enumeration elements, which leads to creation of duplicate constant values\.

Here is an example of incorrect code:

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

The way the constants are initialized here results in assigning the same values to the elements 'SUITS\_HEARTS' and 'SUITS\_UNKNOWN'\. It is not clear if this was done on purpose or by mistake\. 

To avoid errors like that, make sure you explicitly initialize all enumeration elements that have non\-unique values:

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