use "int" in the functions instead of the enum. And while you are at it, you can use const int instead of the enum constants too. There is no sane and type-safe way in C++ to handle collections of flags.
1 2 3 4
conststaticint WHITE = 1;
conststaticint RED = 2;
...
bool IsSetStatesFlags(int eFlag) { ... }