Example of use cases for the C++ metaprogramming facilities
C++ is not strong in the area of traditional program reflection
Types cannot be accessed at run time - types are not first class objects