C++ boost::属性树不能写入双值

C++ boost::属性树不能写入双值,c++,boost,boost-propertytree,C++,Boost,Boost Propertytree,我有一个带有一些值的简单ptree,出于调试的原因,我想将它输出到一个文件中。 但每当我想写双值时,它就会抛出一个坏的any cast异常。 我错过什么了吗 property_tree::ptree obj; obj.put<std::string>("abc1", "t1"); obj.put<std::string>("abc2", "t2"); obj.put<std::string>("abc3", "t3");

我有一个带有一些值的简单ptree,出于调试的原因,我想将它输出到一个文件中。 但每当我想写双值时,它就会抛出一个坏的any cast异常。 我错过什么了吗

     property_tree::ptree obj;
     obj.put<std::string>("abc1", "t1");
     obj.put<std::string>("abc2", "t2");
     obj.put<std::string>("abc3", "t3");
     obj.put<std::string>("abc4", "t4");
     obj.put<std::string>("abc5", "t5");
     obj.put<double>("lksd", 12.393); // this courses 
     const auto settings = boost::property_tree::xml_writer_make_settings< std::string >(' ', 4);
     boost::property_tree::xml_parser::write_xml("obj.xml", obj, std::locale(), settings);
属性树::ptree obj;
实物期权(“abc1”、“t1”);
实物期权(“abc2”、“t2”);
实物期权(“abc3”、“t3”);
实物期权(“abc4”、“t4”);
实物期权(“abc5”、“t5”);
目标投入(“lksd”,12.393);//本课程
const auto settings=boost::property_tree::xml_writer_make_settings(“”,4);
boost::property_tree::xml_parser::write_xml(“obj.xml”,obj,std::locale(),settings);
输出如下所示

<?xml version="1.0" encoding="utf-8"?>
<abc1>t1</abc1>
<abc2>t2</abc2>
<abc3>t3</abc3>
<abc4>t4</abc4>
<abc5>t5</abc5>
<abc6>

t1
t2
t3
t4
t5

可以复制。您使用的是什么编译器?我使用的是vc141.0和Boost 1.70.0