Explicit Instantiations
Clients can cause explicit instantiations to take place by
placing the keyword template in front of a class name
when defining objects.
Explicit instantiations can be used to improve the
performance of our compiles and links.
It can be used to support better code generation and faster
and more predictable compile and link times.
The drawback is that a template class can only be
explicitly instantiated once, for a particular set of template
actual arguments.