只需逐步构建 ptree,并仅在完成后编写:
Live On Coliru http://coliru.stacked-crooked.com/a/28af434b570b422c
#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/ini_parser.hpp>
using namespace boost::property_tree;
struct X {
void add_junction(std::string repID, ptree& pt) const {
std::string juncs = _roadID;
std::size_t pos = juncs.find_last_of("j");
std::string jstart = juncs.substr(0,pos);
std::string jend = juncs.substr(pos,juncs.length());
pt.add(repID + ".startJunction", jstart);
pt.add(repID + ".endJunction", jend);
}
std::string _roadID = "123890234,234898j340234,23495905";
};
int main()
{
ptree pt;
X program_data;
program_data.add_junction("AbbeyRoad", pt);
program_data.add_junction("Big Ben", pt);
program_data.add_junction("Trafalgar Square", pt);
write_ini("report.ini", pt);
}
Output:
[AbbeyRoad]
startJunction=123890234,234898
endJunction=j340234,23495905
[Big Ben]
startJunction=123890234,234898
endJunction=j340234,23495905
[Trafalgar Square]
startJunction=123890234,234898
endJunction=j340234,23495905