#pragma once // This macro adds meta information to a type. #define GENERATE_META(Class) \ class Class; \ template<> struct Meta { \ static constexpr Classes Type = Classes::##Class; \ }; // Predeclarate struct for meta information template struct Meta; // Enum type classes enum class Classes { IRTTI };