Kompilierungsfehler mit boost::property_tree::xml_writer_settings

Kompilierungsfehler mit boost::property_tree::xml_writer_settings


Um meine XML-Ausgabe mit boost::property_tree schön auszudrucken, habe ich folgenden Code geschrieben:


#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/xml_parser.hpp>
int main()
{
std::string filename = "test.xml";
boost::property_tree::ptree pt;
pt.put("some.path.value", "hello");
boost::property_tree::xml_writer_settings<char> settings('\t', 1);
write_xml(filename, pt, settings);
}

Leider habe ich diesen Fehler und kann keine Informationen darüber finden:


/usr/local/include/boost/property_tree/detail/xml_parser_writer_settings.hpp:38:19: error: type 'char' cannot be used prior to '::' because it has no members
typedef typename Str::value_type Ch;
^

Irgendeine Idee?


Antworten:


Ich würde die Hilfsfunktion verwenden


std::ofstream file("test.xml");
boost::property_tree::ptree pt;
pt.put("some.value", "test");
boost::property_tree::write_xml(
file, pt,
boost::property_tree::xml_writer_make_settings<std::string>('\t', 1));

Einige Code-Antworten


#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/xml_parser.hpp>
int main() {
std::string filename = "test.xml";
boost::property_tree::ptree pt;
pt.put("some.path.value", "hello");
boost::property_tree::xml_writer_settings<char>
settings('\t', 1);
write_xml(filename, pt, settings);
}
/usr/local/include/boost/property_tree/detail/xml_parser_writer_settings.hpp:38:19: error: type 'char' cannot be used prior to '::' because it has no members
typedef typename Str::value_type Ch;
^
std::ofstream file("test.xml");
boost::property_tree::ptree pt;
pt.put("some.value", "test");
boost::property_tree::write_xml( file, pt, boost::property_tree::xml_writer_make_settings<std::string>('\t', 1));