title: C++ std::set::erase with std::remove_if
body: <p>This code has the Visual Studio <code>error C3892</code>. If I change <code>std::set</code> to <code>std::vector</code> - it works.</p>
  
  <pre><code>std::set&lt;int&gt; a;
  a.erase(std::remove_if(a.begin(), a.end(), [](int item)
  {
      return item == 10;
  }), a.end());
  </code></pre>
  
  <p>What's wrong? Why can't I use <code>std::remove_if</code> with <code>std::set</code>?</p>