1

そのため、クラス内のC ++プロジェクトのXMLファイルを解析する必要があり、RapidXMLを使用しています。Rapidxml_iterators.hppファイルは私にいくつかの問題を与えています。ちなみに私はDevC++を使用しています

最初、私は次のコードを持っていました:

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"を実行し、コンパイルしようとすると、予期されたネストされた名前の指定子エラーが発生しました。Linuxでg++を使用してrapidxmlをコンパイルする手順に従い、コードを上から次のように変更しました。

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' inありません-ISOC++は、タイプのない`difference_type'の宣言を禁止します

このコードを修正する方法について誰かが何かアイデアを持っているなら、私は永遠に感謝するでしょう。前もって感謝します!

4

1 に答える 1

0

の定義がありませんstd::ptrdiff_ttypedefそのため、コンパイラは、定義されていないためできないと通知します。

ファイルの先頭に適切なヘッダーを含めるだけで問題ありません (このエラーのみで!)。つまり、次を追加します。

#include <cstddef>
于 2013-03-06T00:02:17.900 に答える