Caution
One of the most serious drawbacks of class templates is
the danger of generating an instance of the class that is
incorrect because of type conflicts.
Except by writing specialized template classes to take
care of such cases, there is no way to protect the client
from using the class incorrectly, causing erroneous
instances of the class to be generated.
Be very careful when writing class templates to ensure
that all possible combinations will create correct classes.