结合多个提升property_tree

问题描述

一个非常基本的问题:Boost的PropertyTree是否支持任何形式的添加?例如,我可以:

boost::property_tree::ptree pt0;
boost::property_tree::ptree pt1;
boost::property_tree::ptree pt;

boost::property_tree::ini_parser::read_ini("config0.ini",pt0);
boost::property_tree::ini_parser::read_ini("config1.ini",pt1);
pt = pt0 + pt1;

文档不是很清楚。我假设没有重载的+运算符?

结合2个Boost property_tree对象的推荐“干净”方法是什么?

解决方法

该类似乎有一个范围插入,可用于一次复制所有参数

这是您可以使用该方法创建所需的+运算符重载的方式:

boost::property_tree::ptree operator +(const boost::property_tree::ptree& lhs,const boost::property_tree::ptree& rhs) {
    boost::property_tree::ptree result(lhs);
    result.insert(result.end(),rhs.begin(),rhs.end());
    return result;
}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...