在构建使用tinyXml2的项目后,我收到以下三个错误。错误显示在附图中。有问题的代码可以在tinyXml2的xtree.cs文件中找到,在这里:
template<class _Iter>
void insert(_Iter _First, _Iter _Last)
{ // insert [_First, _Last) one at a time
_DEBUG_RANGE(_First, _Last);
for (; _First != _Last; ++_First)
{ // insert element as lvalue
const value_type& _Val = *_First;
insert(end(), _Val);
}
}
我正在使用(并且必须继续使用)VS2010
什么可能导致这些错误?
1)错误C2675:一元&#39; ++&#39;:&#39; std :: string&#39;没有定义此运算符或转换为预定义运算符可接受的类型
2)错误C2100:非法间接
3)错误C2440:&#39;初始化&#39;:无法转换为&#39; std :: string&#39; to&#39; const std :: pair&lt; _Ty1,_Ty2&gt; &安培;&#39;
编辑:包含错误
答案 0 :(得分:0)
我评论了类(和标题)中的所有内容并添加了代码,直到收到错误。这个失败实际上不是由于tinyXml2 - 它是一个无法将字符串插入地图。
对于将来遇到此问题的任何其他人,这里是违规函数,它在Visual Studio中不会产生波浪形的红线。
map<string, string> createMap(CNintendoItem ni)
{
map<string, string> xmlNodeToValue;
//ItemName is a string constant. ni.Name is a string returned from a class
xmlNodeToValue.insert(ItemName, ni.Name);//name of the item
...//several more insertions
return xmlNodeToValue;
}
解决此问题的一种方法是使用以下方法为新密钥分配值:
xmlNodeToValue[ItemName] = ni.Name;//name of the item