In the following example:
template<class L> class Key { static L k; static L* kptr; static int length; // ... }
The definitions of static variables and objects must be instantiated at
file scope. If the classes Key<int> and Key<double> are
instantiated from this template, and no template definitions exist
, the following static data members must be explicitly defined at file
scope, or an error occurs:
int Key<int>::k, Key<int>::length, Key<double>::length; int* Key<int>::kptr; double Key<double>::k; double* Key<double>::kptr = 0;