Class Templates
Template classes can support static data members. A static
data member declared within a class template is
considered to be itself a static data member template.
With template classes, the compiler automatically
allocates memory for the static members for each
instantiation of the class.
Each object of a particular template class instantiation
shares the same static data members' memory. But, objects
of different template class instantiations do not share the
same static data members' memory.