title: Error C2678 after migrating C++ code from VS2003 to VS2010, error C2679: binary '=' : no operator found which takes a right-hand operand of type 'int'
body: <pre><code>std::vector&lt;std::string&gt;::iterator it;
  
  it = NULL;
  do
  {
      if(it == NULL)
          it = init.begin();
      else
          ++it;
      if(it == init.end())
          return 1; 
  }
  while(it-&gt;empty());
  </code></pre>
  
  <p>The above piece of code works fine with VS2003, but when it is migrated to VS2010, it is giving compilation error saying </p>
  
  <pre><code>error C2679: binary '=' : no operator found which takes a right-hand operand of type 'int' (or there is no acceptable conversion)
  1&gt;          c:\program files\microsoft visual studio 10.0\vc\include\vector(388): could be 'std::_Vector_iterator&lt;_Myvec&gt; &amp;std::_Vector_iterator&lt;_Myvec&gt;::operator =(const std::_Vector_iterator&lt;_Myvec&gt; &amp;)'
  1&gt;          with
  1&gt;          [
  1&gt;              _Myvec=std::_Vector_val&lt;std::string,std::allocator&lt;std::string&gt;&gt;
  1&gt;          ]
  1&gt;          while trying to match the argument list '(std::_Vector_iterator&lt;_Myvec&gt;, int)'
  1&gt;          with
  1&gt;          [
  1&gt;              _Myvec=std::_Vector_val&lt;std::string,std::allocator&lt;std::string&gt;&gt;
  1&gt;          ]
  1&gt;d:\vs2010_ws\acct ford 6.2.4 source code\acct_ford_ws\vector\src\driver\cancardxl.cpp(81): error C2678: binary '==' : no operator found which takes a left-hand operand of type 'std::_Vector_iterator&lt;_Myvec&gt;' (or there is no acceptable conversion)
  1&gt;          with
  1&gt;          [
  1&gt;              _Myvec=std::_Vector_val&lt;std::string,std::allocator&lt;std::string&gt;&gt;
  1&gt;          ]
  </code></pre>