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?
Thanks,
- Rob.
#include <algorithm>
#include <vector>
#include <boost/range.hpp>
#include <boost/bind.hpp>
#include <boost/property_tree/ptree.hpp>
int main( )
{
using boost::property_tree::ptree;
std::vector<unsigned> v;
ptree tree;
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 ) );
}
> g++ ptree.cpp
ptree.cpp: In function ‘int main()’:
ptree.cpp:15: error: invalid static_cast from type ‘<unresolved overloaded function type>’ to type ‘boost::property_tree::ptree& (boost::property_tree::basic_ptree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::*)(const std::string&, unsigned int)’