visual tricks tips studio open language hack code visual-studio-2008 visual-studio-2010 stl
http://sourceforge.net/projects/xmlrpcc4win/files/xmlrpcc4win/XmlRpcC4Win1.0.8.zip/download

visual-studio-2008 - tricks - visual studio code shortcuts windows



VS2008-> VS2010 conduce a errores STL crípticos (2)

Probablemente olvidaste #include <iterator> en algunos de tus archivos. Ahí es donde se declaran cosas como back_insert_iterator .

En el pasado, podía salirse con la suya olvidando ese archivo de encabezado, ya que muchos de los otros encabezados estándar también lo incluían. VS2010 reorganizó los encabezados para que la implementación de su biblioteca sea más compatible con los estándares. Como resultado, es mucho menos tolerante con los encabezados que faltan, y <iterator> es uno que comúnmente se pasa por alto.

La siguiente biblioteca C ++ se compiló con éxito en VS2008

http://sourceforge.net/projects/xmlrpcc4win/files/xmlrpcc4win/XmlRpcC4Win1.0.8.zip/download

Cuando lo abro en VS2010, pasa por el proceso del asistente de conversión sin ningún error.

Ahora, cuando intento compilarlo en VS2010, obtengo algunos errores STL extraños como estos:

1>TimXmlRpc.cpp(1018): error C2039: ''back_insert_iterator'' : is not a member of ''std'' 1>TimXmlRpc.cpp(1018): error C2065: ''back_insert_iterator'' : undeclared identifier 1>TimXmlRpc.cpp(1018): error C2275: ''XmlRpcValue::BinaryData'' : illegal use of this type as an expression 1>TimXmlRpc.cpp(1018): error C2065: ''ins'' : undeclared identifier 1>TimXmlRpc.cpp(1018): error C2039: ''back_inserter'' : is not a member of ''std'' 1>TimXmlRpc.cpp(1018): error C3861: ''back_inserter'': identifier not found 1>TimXmlRpc.cpp(1019): error C2065: ''ins'' : undeclared identifier 1>TimXmlRpc.cpp(1031): error C2039: ''back_insert_iterator'' : is not a member of ''std'' 1>TimXmlRpc.cpp(1031): error C2065: ''back_insert_iterator'' : undeclared identifier 1>TimXmlRpc.cpp(1031): error C2275: ''std::vector<_Ty>'' : illegal use of this type as an expression 1> with 1> [ 1> _Ty=char 1> ] 1>TimXmlRpc.cpp(1031): error C2065: ''ins'' : undeclared identifier 1>TimXmlRpc.cpp(1031): error C2039: ''back_inserter'' : is not a member of ''std'' 1>TimXmlRpc.cpp(1031): error C3861: ''back_inserter'': identifier not found 1>TimXmlRpc.cpp(1032): error C2065: ''ins'' : undeclared identifier

No estoy seguro de qué hacer con algunos de estos. Por ejemplo, back_insert_iterator es de hecho un miembro de std , pero VS no parece pensar que lo es.

¿Cómo soluciono errores como estos? Simplemente no parecen tener mucho sentido, así que no estoy seguro de por dónde empezar. Tal vez es algo en la configuración de mi proyecto?

Por ejemplo, aquí está la línea 1018, que da el error estándar:

std::back_insert_iterator<BinaryData> ins = std::back_inserter(*(u.asBinary));

Si alguien pudiera darme una dirección, lo agradecería. Soy lo suficientemente nuevo para C ++ que me resulta difícil descifrar este.


Desde MSDN:

El encabezado ya no se incluye automáticamente por muchos otros archivos de encabezado. En su lugar, incluya ese encabezado explícitamente si necesita soporte para los iteradores independientes definidos en el encabezado.

http://msdn.microsoft.com/en-us/library/bb531344.aspx