Your class code is not the problem. In one of my messages above, I pointed out that passing std functions needs care cause thy are generic, or overloaded for some. That is the issue here; the call site.

For a std library function, the quickest solution is wrapping it in a lambda, 

MyClass a{ [](int a, int b){ return min(a, b); } };

I suggest you revisit my original post giving different ways to accomplish passing a function as a parameter. A template based solution would make the calling code simpler, but at the cost of dealing with template idiosyncrasies.