Also, probably, because since it's a template, you can't add or define functions for an unspecialized class. Therefore you must either explicitly provide the type (template specialization) or add a template declaration before the class and use a template type such as T.