make the code compatible with clang
leave only enum forward declarations in enums.h