Added macro to handle defining data types enum.
Fixes for Clang and GCC builds.
Merge branch 'macro_enums' into next