There is no such a restriction. These template functions are overloaded for const and non-const member functions.
For example
template<class S, class T>
mem_fun_t<S,T> mem_fun(S (T::*f)());
template <class S, class T>
const_mem_fun_t<S,T> mem_fun(S (T::*f)() const);