I\'ve been messing with using RapidXML on one of my projects. It was all going so well until I decided to use it for writing out xml. My code is more or less as follows:
If you need to use gcc version greater than or equal to 4.7 and you are cloning the rapidxml repository during your build.
Replace:
#include "rapidxml.hpp"
#include "rapidxml_print.hpp"
With this:
#include "rapidxml_ext.h"
rapidxml_ext.h:
#ifndef RAPIDXML_EXT_H_
#define RAPIDXML_EXT_H_
#include "rapidxml.hpp"
/* Adding declarations to make it compatible with gcc 4.7 and greater */
namespace rapidxml {
namespace internal {
template
inline OutIt print_children(OutIt out, const xml_node* node, int flags, int indent);
template
inline OutIt print_attributes(OutIt out, const xml_node* node, int flags);
template
inline OutIt print_data_node(OutIt out, const xml_node* node, int flags, int indent);
template
inline OutIt print_cdata_node(OutIt out, const xml_node* node, int flags, int indent);
template
inline OutIt print_element_node(OutIt out, const xml_node* node, int flags, int indent);
template
inline OutIt print_declaration_node(OutIt out, const xml_node* node, int flags, int indent);
template
inline OutIt print_comment_node(OutIt out, const xml_node* node, int flags, int indent);
template
inline OutIt print_doctype_node(OutIt out, const xml_node* node, int flags, int indent);
template
inline OutIt print_pi_node(OutIt out, const xml_node* node, int flags, int indent);
}
}
#include "rapidxml_print.hpp"
#endif /* RAPIDXML_EXT_H_ */