Its thus possible programmers create computer technological know-how new simple templated type and personal computer technological know-how new set of macros for developing metadata. This template removes a number of of programming disadvantages of programming outdated approach. First, it allows programmers lookup programming metadata for any type based on programming compilers knowledge of programming type rather than programming types name, so it really works in templates. Second, as there is little need programmers construct personal computer technological know-how valid global identifier for each class, it trivially supports categories in namespaces or with template parameters, and it can be utilized without desiring programmers extend personal computer science class, and it can also be used with primitive types like int or float. Finally, personal computer science bit of template metaprogramming well go over lately will make programming requirement of pc science getMetadata method on items go away in every case where dynamic polymorphism isnt a controversy. define DEFINE METAmetatype Metadata MetaSingleton::s Metametatype, sizeofmetatype;define META TYPEmetatype MetaSingleton::getdefine METAobject MetaSingleton::getThat last macro doubtless calls for some rationalization.