title: Using `auto` yields error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
body: <p>I use VS2008 on Windows 10.
  I have a problem with this function and hope you can help me </p>
  
  <pre><code>void CPythonNetworkStream::AppearShopSign(DWORD dwVID, std::string stSign) {
      if (stSign.empty())
          for (auto it = m_mapShopSign.begin(); it != m_mapShopSign.end(); ++it)
              if (dwVID == it-&gt;first)
                  stSign = it-&gt;second;
  
      // LogBoxf("AppearShopSign: %u-%s", dwVID, stSign.c_str());
      PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "BINARY_PrivateShop_Appear", Py_BuildValue("(is)", dwVID, stSign.c_str()));
  }
  </code></pre>
  
  <p>Error messages</p>
  
  <pre><code>error C4430: missing type specifier - int assumed. Note: C++ does not support default-int   
  error C2440: 'initializing' : cannot convert from 'std::_Tree&lt;_Traits&gt;::iterator' to 'int' 
  error C2678: binary '!=' : no operator found which takes a left-hand operand of type 'int' (or there is no acceptable conversion)
  error C2227: left of '-&gt;first' must point to class/struct/union/generic type
  </code></pre>