VS2008-> VS2010 приводит к загадочным ошибкам STL

Следующая библиотека C++ была успешно скомпилирована в VS2008

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

Когда я открываю его в VS2010, это проходит процесс мастера преобразования без любых ошибок.

Теперь, когда я пытаюсь скомпилировать его в VS2010, я получаю некоторые странные ошибки STL как они:

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

Я не уверен, что сделать из некоторых из них. Например, back_insert_iterator на самом деле член std, но VS, кажется, не думает, что это.

Как я фиксирую ошибки как они? Они просто, кажется, не имеют много смысла, таким образом, я не уверен, где начать. Возможно, что-то в моих настройках проекта?

Например, вот строка 1018, который дает ошибку станд.:

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

Если бы кто-либо мог бы дать мне некоторое направление, я ценил бы его. Я достаточно плохо знаком с C++, что мне нелегко выяснять этого.

18
задан Jake Wilson 2 June 2010 в 15:39
поделиться

1 ответ

Вы, вероятно, забыли #include в некоторых своих файлах. Здесь объявляются такие вещи, как back_insert_iterator .

Раньше вы могли забыть этот заголовочный файл, поскольку многие другие стандартные заголовки также включали его. VS2010 реорганизовал заголовки для своей реализации библиотеки, чтобы они соответствовали стандартам. В результате он гораздо менее прощает пропущенные заголовки, а часто упускается из виду.

31
ответ дан 30 November 2019 в 07:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: