    Like any function, overloaded functions may be declared, either using
plain declarations or instantiation declarations. Explicit template argument
types may also be used. Example:
    itemization(
    it() To declare a function template tt(add) accepting certain containers:
    verb(template <typename Container, typename Type>
Type add(Container const &container, Type const &init);)

it() to use an instantiation declaration (in which case the compiler must
already have seen the template's definition):
    verb(template int add<std::vector<int>, int>
                (std::vector<int> const &vect, int const &init);)

it() to use explicit template type arguments:
    verb(std::vector<int> vi;
int sum = add<std::vector<int>, int>(vi, 0);)

)
