Template definitions go into the same translation unit they are instantiated in, unless your compiler supports the export keyword.
A source file together with all included headers and included source files, less any source lines skipped by preprocessor conditionals, is called a translation unit, or TU. TUs can be separately translated and then later linked to produce an executable program.
tl dr, put the template member function definition in the header file.
PS: you are not using the state of the object, so I don't think it should be a member function