an example of template function overload