Boost :: Property_Tree设置

时间:2014-12-17 20:29:53

标签: c++ boost settings

感谢Boost :: Property_Tree,我试图配置我的XML文件。 我想要的聊天是:

<configuration>
<message>
<first>10</first>
</message>
</configuration>

我所拥有的是:

<configuration><message>first>10</first></message></configuration>

我发现我必须使用

boost::property_tree::xml_writer_settings<char> settings(' ', 1);
write_xml(file, XMLobjectL, std::locale(), settings);

但这并没有编译。 错误是:

  

IntelliSense:没有&#34; write_xml&#34;的实例匹配参数列表   参数类型是:(const std :: string,boost :: property_tree :: ptree,   的std ::现场,   升压:: property_tree :: xml_parser :: xml_writer_settings)

     

错误C2664:&#39;无效   提高:: property_tree :: xml_parser :: write_xml(常量   std :: string&amp;,const Ptree&amp;,const std :: locale&amp;,const   boost :: property_tree :: xml_parser :: xml_writer_settings&amp;)&#39; :   无法转换参数4   &#39;的boost :: property_tree :: xml_parser :: xml_writer_settings&#39;至   &#39; const boost :: property_tree :: xml_parser :: xml_writer_settings&amp;&#39;

你知道吗? 我正在使用Boost 1.57.0和MVSC ++ 提前谢谢。

1 个答案:

答案 0 :(得分:1)

您需要帮助重载解决方案。

也就是说,考虑使用xml_writer_make_settings

<强> Live On Coliru

#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/xml_parser.hpp>

using namespace boost::property_tree;

int main() {
    ptree XMLobjectL;
    XMLobjectL.put("configuration.message.first", 10);

    write_xml("test.xml", XMLobjectL, std::locale(), xml_writer_make_settings<ptree::key_type>(' ', 1u));
}