Разбор XML-файла в C ++ с использованием RapidXML с переполнением стека Dev

Поэтому я должен проанализировать XML-файл для моего проекта C ++ в классе, и я использую 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» и выдал мне ожидаемую ошибку спецификатора вложенного имени при попытке его скомпилировать. Я следовал инструкциям скомпилируйте rapidxml под linux с помощью 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;

Теперь он дает мне эти ошибки:

-шаблон класса не назван ptrdiff_t' inстанд»
-ISO C ++ запрещает объявление «diff_type» без типа

Если у кого-то есть идеи, как исправить этот код, я был бы всегда благодарен. Заранее спасибо!

1

Решение

Вам не хватает определения std::ptrdiff_t, Таким образом, компилятор говорит вам, что вы не можете typedef это так как оно не определено.

Просто включите правильный заголовок вверху вашего файла, и все будет хорошо (только с этой ошибкой!), То есть добавьте:

#include <cstddef>
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]