Yes, you can forward the enum declaration:
enum things;
However, I think that you will have problems if you start using compiler flags such as -pedantic , since I do not consider this part of the ISO standard. I also think that, like a declaration declaring a class, perhaps you are only using a pointer to it, since its size is unknown.
I never had to do this, and I prefer to include a header file that defines enum (and I don't think the enum forward declaration is cleaner than including a file).
Bottom line: Do not disturb .
source share