That <T> is an indication that your T being used by the class member template is the same T being used by the rest of the class (the class is a template). If you were to omit it, I expect that that function would be a little bit more... flexible in terms of what types it accepts. To be honest, I've never tried omitting the additional set of brackets.