C++ pointer to template polymorphism

This is the limitation of static polymorphism, you can only get around this using dynamic methods... as you want the template paramater of TemplateClass to be dynamic.

CRTP is true polymorphism, just static.