http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57283
--- Comment #5 from Lin Yi-Li <record.nctu.cis91 at gmail dot com> --- (In reply to Jonathan Wakely from comment #4) > N.B. you can also do it with a nested std::bind expression and > std::logical_not > > std::bind(std::logical_not<int>(), > std::bind(std::mem_fn(&cls::value), std::placeholders::_1)) > > in C++14 that means you can provide a working not1 replacement: > > template<typename F> > auto not1(F f) > { > return std::bind(std::logical_not<>(), std::bind(f, > std::placeholders::_1)); > } I understand the problem of std::mem_fn + member variable now. Thank you for your explanation.