It seems it has to do with the fact that mem_fun_ref expects a function with either zero or one parameters, but resize takes 2 parameters (size and default value).
I don't know how to fix it, but I'm sure someone here does.
Code:
#include <functional>
#include <vector>
int main() {
std::mem_fun_ref(&std::vector<int>::resize);
}
/* ERROR:
no matching function for call to
mem_fun_ref( void (std::vector<int>::*)(unsigned int, int) )
candidates are:
template<class _Ret, class _Tp>
std::mem_fun_ref_t<_Ret, _Tp>
std::mem_fun_ref(_Ret (_Tp::*)())
template<class _Ret, class _Tp>
std::const_mem_fun_ref_t<_Ret, _Tp>
std::mem_fun_ref(_Ret (_Tp::*)()const)
template<class _Ret, class _Tp, class _Arg>
std::mem_fun1_ref_t<_Ret, _Tp, _Arg>
std::mem_fun_ref(_Ret (_Tp::*)(_Arg))
template<class _Ret, class _Tp, class _Arg>
std::const_mem_fun1_ref_t<_Ret, _Tp, _Arg>
std::mem_fun_ref(_Ret (_Tp::*)(_Arg)const)
*/