That's why they're called generic parameters, not template parameters; the code is generic over all possible parameters, not templated for every possible parameter.