Normally with templates both the declaration and implementation must be in the same compilation unit. Did you try to place the code in the second snippet in the .h file?

Also you may want to tell us what line in the snippet corresponds to the line 17 of your error message, after all you have several * in your snippet.

Jim