boost property_tree push_back VC2012

时间:2013-09-16 20:27:45

标签: visual-studio-2012 boost-propertytree

网上发布了一些示例,演示了如何使用boost的属性树创建JSON数组。

基本语法是:

boost::property_tree::ptree array;
array.push_back(std::make_pair("", "value-1"));
array.push_back(std::make_pair("", "value-2"));

这似乎无法使用boost 1.54和visual studio c ++ 2012.使用VC 2010和相同的升级版本可以正常工作。

我收到的错误是“无法将参数1从std :: pair< _Ty1,_Ty2>转换为const std :: pair< _Ty1,_Ty2>&”

非常感谢其他人对解决这个问题的任何建议。

1 个答案:

答案 0 :(得分:0)

ptree::push_back需要ptree::value_type。这不是pair<key, value>而是pair<key, ptree>。 push_back()转发到insert(),它将给定的ptree(用pair :: second定义)复制到当前的ptree中

我建议坚持ptree.add()。请参阅the five minute tutorial,它基本上是您想要对一组同名节点执行的操作