builds with MSVC in C++ mode; more enum nonsense