"template function" or "template class" must be written in .h file or .hpp file
It's a more common way to write Template-Function's implement in .hpp file.
Or , if you write template-function in cpp, you will get the error " symbol not defined"
Reason:Complier won't complie template (Just leave a "placeholder"), it is complied when it has been used.
But it won't compile twice or more if meets the same template-type.