title: non standard extension warning when searching in a vector of unique_ptrs
body: <p>In the following code snippet:</p>
  
  <pre><code>std::vector&lt;std::unique_ptr&lt;int&gt;&gt; vec;
  vec.emplace_back(std::make_unique&lt;int&gt;(1));
  vec.emplace_back(std::make_unique&lt;int&gt;(2));
  vec.emplace_back(std::make_unique&lt;int&gt;(3));
  vec.emplace_back(std::make_unique&lt;int&gt;(4));
  vec.emplace_back(std::make_unique&lt;int&gt;(5));
  auto &amp; itr = std::find_if(vec.begin(), vec.end(), [](std::unique_ptr&lt;int&gt; &amp; val)-&gt;bool
  {
     return *val == 5;
  });
  vec.erase(itr);
  </code></pre>
  
  <p>I get the following warning:</p>
  
  <pre><code>Severity    Code    Description Project File    Line
  Warning C4239   nonstandard extension used: 'initializing': conversion from 'std::_Vector_iterator&lt;std::_Vector_val&lt;std::_Simple_types&lt;std::unique_ptr&lt;int,std::default_delete&lt;_Ty&gt;&gt;&gt;&gt;&gt;' to 'std::_Vector_iterator&lt;std::_Vector_val&lt;std::_Simple_types&lt;std::unique_ptr&lt;int,std::default_delete&lt;_Ty&gt;&gt;&gt;&gt;&gt; &amp;'
  </code></pre>
  
  <p>What am I doing wrong? </p>
  
  <p>I am on VS2015 and this warning comes up only at warning level 4. Should I just ignore it or could it result in any sneaky problems(if similar code involving vector of <code>unique_ptr</code>s was used in a larger context)?</p>