c++ - 使用带有 Dev C++ 的 RapidXML 在 C++ 中解析 XML 文件

标签 c++ xml-parsing tree dev-c++ rapidxml

所以我必须在类里面为我的 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/

相关文章:

算法 - 将嵌套数据转换为普通数据

javascript - 从 Typescript/Javascript 中的平面数组构建树数组(3 维)

c++ - 内部结构初始化不起作用 - C++

c++ - 警告 C4018 : '<' : signed/unsigned mismatch

hadoop - Xml与Hive解析

android - 如何将任意 XML 读入 Android 中的通用对象?

python - 如何强制删除大对象

c++ - rand() 产生 1 个数字太高?

c++ - 解析和转换非范数?

java - 如何将列表(java.util.list)中的值传递给paint方法?