#define VARIANTS float,int,std::string,bool #define CREATE_ATTRIBUTE(variable,type) _ATTRIBUTE variable{Attribute::TYPE::type}; namespace Attribute{ enum class TYPE{ FLOAT, INT, STRING, BOOL, }; } struct _ATTRIBUTE{ Attribute::TYPE type; }; namespace Attribute{ CREATE_ATTRIBUTE(IFRAME_TIME_UPON_HIT,FLOAT); CREATE_ATTRIBUTE(SHOOT_RING_TIMER,FLOAT); }