You're not using generics.
Generics are a different concept in other HLLs...
C++ has templates. The defining characteristic of templates is that a version of the template is not generated by the compiler for any type unless it is either a) explicitly specialized or b) used with a type argument that requires a version of that template for the type.
This is why you'll only ever see compiler errors when you use the template object/function/struct, but not when you define them.
To answer your question -- kbw's answer is it. That would result in an explicitly specialized template though.