It sounds to me like somewhere previously in the header, or in an included header, there must be a #define for the symbol class. Obviously, that will crap all over the C++ keyword class, so it needs to be #undef'ed.
It is a reserved keyword. But remember that preprocessor definitions are a purely textual find-and-replace operation, that happens before the compiler runs. So it doesn't matter that it's a reserved keyword; the preprocessor will overwrite it anyway.