title: Why use std::bind over lambdas in C++14?
body: <p>Before C++11 I used <code>boost::bind</code> or <code>boost::lambda</code> a lot. The <code>bind</code> part made it into the standard library (<code>std::bind</code>) the other part became part of the core language (C++ lambdas) and made the use of lambdas a lot easier. Nowadays, I hardly use <code>std::bind</code>, since I can do almost anything with C++ lambdas. There's one valid use-case for <code>std::bind</code> that I can think of:</p>
  
  <pre><code>struct foo
  {
    template &lt; typename A, typename B &gt;
    void operator()(A a, B b)
    {
      cout &lt;&lt; a &lt;&lt; ' ' &lt;&lt; b;
    }
  };
  
  auto f = bind(foo(), _1, _2);
  f( "test", 1.2f ); // will print "test 1.2"
  </code></pre>
  
  <p>The C++14 equivalent for that would be </p>
  
  <pre><code>auto f = []( auto a, auto b ){ cout &lt;&lt; a &lt;&lt; ' ' &lt;&lt; b; }
  f( "test", 1.2f ); // will print "test 1.2"
  </code></pre>
  
  <p>Much shorter and more concise. (In C++11 this does not work yet because of the auto parameters.) Is there any other valid use case for <code>std::bind</code> beating the C++ lambdas alternative or is <code>std::bind</code> superfluous with C++14?</p>