所以我必须在类里面为我的 C++ 项目解析一个 XML 文件,我正在使用 RapidXML。 rapidxml_iterators.hpp 文件给我带来了一些麻烦。顺便说一下,我正在使用 Dev C++
起初,我有以下代码:
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 中,我做了:#include "rapidxml_iterators.hpp"并在我尝试编译它时给了我预期的嵌套名称说明符错误。我按照 compile rapidxml under linux with g++ 中的说明进行操作并将代码从顶部更改为以下:
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;
现在,它给我这些错误:
-在 std' 中没有名为 ptrdiff_t' 的类模板
-ISO C++ 禁止声明没有类型的“difference_type”
如果有人对如何修复此代码有任何想法,我将永远感激不已。提前致谢!
最佳答案
您缺少 std::ptrdiff_t
的定义。所以编译器告诉你不能 typedef
因为它没有定义。
只需在文件顶部包含正确的标题就可以了(只有这个错误!),即添加:
#include <cstddef>
关于c++ - 使用带有 Dev C++ 的 RapidXML 在 C++ 中解析 XML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15236471/