title: Why use mem_fn?
body: <p>I'm confused as to why <code>std::mem_fn</code> is needed.</p>
  
  <p>I have a function that takes in any callable (lambda, function pointer, etc),and binds it to an argument.</p>
  
  <p>Eg:</p>
  
  <pre><code>template&lt;class T&gt;
  void Class::DoBinding(T callable) {
    m_callable = std::bind(callable, _1, 4);
  }
  //somewhere else
  Item item;
  m_callable(item);
  </code></pre>
  
  <p>All code samples I've seen do:</p>
  
  <pre><code>//some defined member function
  Item::Foo(int n);
  
  DoBinding(std::mem_fn(&amp;Item::Foo));
  </code></pre>
  
  <p>Why can't it simply be:</p>
  
  <pre><code>DoBinding(&amp;Item::Foo);
  </code></pre>
  
  <p>It seems the latter is callable without having to use std::mem_fn, so why is it needed?</p>