If an enum has different names for the same constant, make sure only the first one declared gets added into the switch. Failing to do so results in a compiler error as 2 case labels can't represent the same value.
enum Numbers{ One, Un = One, Two, Deux = Two, Three, Trois = Three }; // Old behaviour switch (<Number>) { case One: case Un: case Two: case Duex: case Three: case Trois: break; } // New behaviour switch (<Number>) { case One: case Two: case Three: break; }
for this kind of purpose, we'd typically just use struct EnumAndCovered { const ECD *Enumerator; bool Covered; } without encapsulation. But this is fine.
I think a name like ExpectedCase might hint a little more at the purpose. Up to you.