I am trying to compile this example [url]http://www.boost.org/doc/libs/1_42_0/doc/html/boost_propertytree/tutorial.html[/url]
and I am getting the error "/usr/local/boost_1_47_0/boost/property_tree/detail/ptree_implementation.hpp:795:54: error: request for member ‘put_value’ in ‘tr’, which is of non-class type ‘bool’" in this line:

BOOST_FOREACH(const std::string &name, m_modules){
    pt.put("debug.modules.module", name, true);
}

My full error message is:

make all 
Building file: ../src/Boost_property_tree.cpp
Invoking: GCC C++ Compiler
g++ -I/home/mori/Demetrio/WSs/Test/VanManagerParser/json_spirit -I/usr/local/boost_1_47_0/ -I/usr/local/boost_1_47_0/boost/spirit -I/usr/local/curl-7.21.7/ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/Boost_property_tree.d" -MT"src/Boost_property_tree.d" -o "src/Boost_property_tree.o" "../src/Boost_property_tree.cpp"
../src/Boost_property_tree.cpp: In member function ‘void debug_settings::save(const std::string&)’:
../src/Boost_property_tree.cpp:80:5: error: invalid initialization of reference of type ‘std::string&’ from expression of type ‘const std::basic_string<char>’
In file included from /usr/local/boost_1_47_0/boost/property_tree/ptree.hpp:516:0,
                 from ../src/Boost_property_tree.cpp:4:
/usr/local/boost_1_47_0/boost/property_tree/detail/ptree_implementation.hpp: In member function ‘void boost::property_tree::basic_ptree<Key, Data, KeyCompare>::put_value(const Type&, Translator) [with Type = std::basic_string<char>, Translator = bool, Key = std::basic_string<char>, Data = std::basic_string<char>, KeyCompare = std::less<std::basic_string<char> >]’:
/usr/local/boost_1_47_0/boost/property_tree/detail/ptree_implementation.hpp:817:13:   instantiated from ‘boost::property_tree::basic_ptree<K, D, C>& boost::property_tree::basic_ptree<Key, Data, KeyCompare>::put(boost::property_tree::basic_ptree<Key, Data, KeyCompare>::path_type&, const Type&, Translator) [with Type = std::basic_string<char>, Translator = bool, Key = std::basic_string<char>, Data = std::basic_string<char>, KeyCompare = std::less<std::basic_string<char> >, boost::property_tree::basic_ptree<Key, Data, KeyCompare>::path_type = boost::property_tree::string_path<std::basic_string<char>, boost::property_tree::id_translator<std::basic_string<char> > >]’
../src/Boost_property_tree.cpp:81:50:   instantiated from here
/usr/local/boost_1_47_0/boost/property_tree/detail/ptree_implementation.hpp:795:54: error: request for member ‘put_value’ in ‘tr’, which is of non-class type ‘bool’
make: *** [src/Boost_property_tree.o] Error 1

**** Build Finished ****

Recommended Answers

All 2 Replies

> I am trying to compile this example http://www.boost.org/doc/libs/1_42_0/...
> and I am getting the error "/usr/local/boost_1_47_0/...

There is a version mismatch. The code for 1.47.0 would be:

BOOST_FOREACH( const std::string& name, m_modules )
{
   // pt.put( "debug.modules.module", name, true ) ;
   pt.add( "debug.modules.module", name, true ) ;
}

See: http://www.boost.org/doc/libs/1_47_0/doc/html/boost_propertytree/tutorial.html

Thanks. It is running now.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.