This is a partial specialization of the function template. This is not allowed.
In this example, you can solve the overload problem:
template<typename It>
It make_reverse_iterator(const reverse_iterator<It> &it)
{
return it.base();
}
In cases where overloads do not work, you can resort to partial specialization of class templates.
source
share