On 19.05.2011, at 08:56, Robert Jones wrote:

Hi All

Is it possible and practical to use the put and get methods of Boost.PropertyTree with std
algorithms?

I've written this snippet, which doesn't compile, which I think is because I have not correctly
expressed the return type of "put()". Is it possible to do this?

Yes, the put() overloads all return the affected tree node.

    for_each( boost::begin( v ), boost::end( v ),
            bind( static_cast<void (ptree::*)( const std::string &, unsigned )>( & ptree::put ), boost::ref( tree ), "Values.value", _1 ) );

Try this:

static_cast<ptree& (ptree::*)(...)> 

Sebastian