   Silly problem with enums in classes
  Hi people,I have a logger class that has an enum of message types. I then have macros that expect a string message and one of these enum values. This was working fine, until I started using SDL and OpenGL, at which point I started getting errors about the 'ILogger::ERROR' value being invalid. I figure this is because 'ERROR' is defined somewhere in one of the SDL or OpenGL files, and is causing a conflict.Now, my question is: why, even when I use this value as "ILogger::MessageType::ERROR", does the error persist? Surely this is enough to differentiate between my 'ERROR' and theirs? Or is that still not enough? Do I need to start using namespaces? If so, can someone direct me to a site that'll tell me some best practices for using them, as although the syntax is dead easy I'm sure using them effectively isn't. Thanks :)   
  It is possible that some header file (probably a Win32 header file) has "#define ERROR ..." somewhere. But without the exact error message and the relevant code, it is hard to say.