﻿# V556\. Values of different enum types are compared\.

The analyzer detected a potential error: code contains comparison of enum values which have different types\.

Consider a sample:

```cpp
enum ErrorTypeA { E_OK, E_FAIL };
enum ErrorTypeB { E_ERROR, E_SUCCESS };
void Foo(ErrorTypeB status) {
  if (status == E_OK)
  { ... }
}
```

The programmer used a wrong name in the comparison by accident, so the program's logic is disrupted\. This is the correct code:

```cpp
void Foo(ErrorTypeB status) {
   if (status == E_SUCCESS)
  { ... }
}
```

Comparison of values of different enum types is not necessarily an error, but you must review such code\.