Conditional based on variable type?

The template definitions and function prototypes go in the .h file. The function implementations go in the .cpp file.