用DeVC++实现RAPIDXML对C++文件的解析 P>所以我必须在我的C++项目中解析XML文件,并且我使用的是RAPIDXML。rapidxml_iterators.hpp文件给我带来了一些麻烦。我用DEV C++的方式< /P>

用DeVC++实现RAPIDXML对C++文件的解析 P>所以我必须在我的C++项目中解析XML文件,并且我使用的是RAPIDXML。rapidxml_iterators.hpp文件给我带来了一些麻烦。我用DEV C++的方式< /P>,c++,xml-parsing,tree,dev-c++,rapidxml,C++,Xml Parsing,Tree,Dev C++,Rapidxml,起初,我有以下代码: typedef typename xml_node<Ch> value_type; typedef typename xml_node<Ch> &reference; typedef typename xml_node<Ch> *pointer; typedef std::ptrdiff_t difference_type; typedef std::bidirectional_iterator_tag iterator_cate

起初,我有以下代码:

typedef typename xml_node<Ch> value_type;
typedef typename xml_node<Ch> &reference;
typedef typename xml_node<Ch> *pointer;
typedef std::ptrdiff_t difference_type;
typedef std::bidirectional_iterator_tag iterator_category;
在main.cpp中,我包含了rapidxml_iterators.hpp,并在试图编译它时给了我一个预期的嵌套名称说明符错误。我按照中的说明进行操作,并将代码从顶部更改为以下内容:

typedef xml_node<Ch> value_type;
typedef xml_node<Ch> &reference;
typedef xml_node<Ch> *pointer;
typedef typename std::ptrdiff_t difference_type;
typedef typename std::bidirectional_iterator_tag iterator_category;
现在,它给了我这些错误:

-没有名为ptrdiff_t'instd'的类模板 - ISO C++禁止声明“差异类型”,没有类型< /p>
如果有人对如何修复此代码有任何想法,我将永远感激。提前谢谢

您缺少std::ptrdiff\t的定义。因此,编译器告诉您,您无法对其进行typedef,因为它没有定义

只需在文件顶部包含正确的头,您就可以很好地处理此错误!,即增加:

包括
嘿,非常感谢你的回复!现在,我不再得到STD::pTrDeffyt错误,但它仍然给我这些问题:ISO C++禁止在不同类型中声明“差异类型”,而在STD中不存在名为BidialAlxIdActualType的类模板,其余的错误只是这些DooOK的重复实例。然后请将此标记为答案,以便结束此问题,如果您愿意,请用您的新问题打开一个新主题。事实上,它仍然会给我std::ptrdiff\t错误。还有其他建议吗?我不懂。是因为DEV C++吗?在系统中查找CSTDDF头,看看里面是什么。它是否定义了std::ptrdiff\t?也许你需要打开一面旗子?把你的头放在一个PASTBIN上,并把它作为一个更新来发布到你的初始帖子中。其他错误是:ISO C++禁止在不同的类型中声明“区别”类型,而在STD中没有一个名为BidioTalyTyrAtRealTyAg的类模板,其余的错误只是这两个重复的实例,但是有不同的事情,如迭代器类。