Using Separate Files
There are some restrictions.
Templates defined in an unnamed namespace cannot be
exported.
But, an exported template only needs to be declared in the
file in which it is instantiated.
Declaring member functions of a class template as
exported means that its members can be exported and used
in other files.
If the keyword export was not used, the definition of the
function must be within the scope of where we define the
objects. This would require that we include the
implementation file in our header file and ultimately in
client code as well (e.g., t_class.h could include
t_class.cpp)