I hope the problem is clear. Is there an alternative way not to get undefined reference error without implementing template functions in header files? Thanks in advance.
If you know in advance which all instantiations you will need, you can instantiate them manually.
Marshall Cline's C++-FAQ already deals with this.
One way is to use export but I don't really recommend using it because not all compilers support it really!
In fact C++0x Committee has voted out export out of the next C++ Standard.