问题描述
一个非常基本的问题: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;
}