acfr / comma

generic c++ libraries
Other
27 stars 16 forks source link

name-value-convert compilation error with Boost 1.56+ #55

Closed andrew-hill closed 9 years ago

andrew-hill commented 9 years ago

Apparently there's an API change from Boost 1.56 (compared to 1.55) for boost::property_tree

In comma, this affects name-value-convert.cpp line 95 where the xml_writer_settings are templated on char type.

Here's the changes from another project, which now supports both pre-1.56 and post-1.56 APIs. I'm not sure if there is a simpler way... https://github.com/PointCloudLibrary/pcl/pull/867/files

As a simple test for Boost 1.56+, the following change to line 95 resolves the compilation error replace this line:

static boost::property_tree::xml_parser::xml_writer_settings< char > xml_writer_settings;

with this line:

static boost::property_tree::xml_parser::xml_writer_settings< std::string> xml_writer_settings = boost::property_tree::xml_writer_make_settings< std::string >();

A portable solution, assuming you want pre-1.56 and post-1.56 compatibility would be more along the lines of the changes linked above, i.e. wrapped in #if (BOOST_VERSION >= 105600)

vlaskine commented 9 years ago

@andrew-hill : thank you for spotting it, Andrew; your solution looks good, could you please implement it and push? thanks a lot!