a) declare template in header. b) create "implementation" *.ipp file
e) create *.cpp which i) includes the *.ipp file ii) explicitly instantiate the template. This is used to add precompiled instantiations to the serialization libraries.
how can you istantiate the template if you don't have the concrete type yet?