id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 6785,read_json does not compile on GCC 4.7.0 with std=c++11,Wojciech Cierpucha ,Sebastian Redl,"Just as the summary says it is impossible to use read_json(...) from Boost.PropertyTree with GCC 4.7.0 with std=c++11. The error is in json_parser_read.hpp:105 - context::a_literal_val::operator(): {{{ c.stack.back()->push_back(std::make_pair(c.name, Str(b, e))); }}} Error message: {{{ /usr/include/boost/property_tree/detail/json_parser_read.hpp:105:17: error: no matching function for call to ‘boost::property_tree::basic_ptree, std::basic_string >::push_back(std::pair, std::basic_string >)’ /usr/include/boost/property_tree/detail/json_parser_read.hpp:105:17: note: candidate is: In file included from /usr/include/boost/property_tree/ptree.hpp:516:0, from main.cpp:4: /usr/include/boost/property_tree/detail/ptree_implementation.hpp:362:9: note: boost::property_tree::basic_ptree::iterator boost::property_tree::basic_ptree::push_back(const value_type&) [with Key = std::basic_string; Data = std::basic_string; KeyCompare = std::less >; boost::property_tree::basic_ptree::value_type = std::pair, boost::property_tree::basic_ptree, std::basic_string > >] /usr/include/boost/property_tree/detail/ptree_implementation.hpp:362:9: note: no known conversion for argument 1 from ‘std::pair, std::basic_string >’ to ‘const value_type& {aka const std::pair, boost::property_tree::basic_ptree, std::basic_string > >&}’ }}} It compiles successfully on 4.7.0 with -std=c++98 and on both 4.6.3 and 4.5.3 in both c++98 and c++0x modes. It seems strange to me that it compiles at all in c++98 mode and with an older gcc version, since (according to docs) ptree::push_back wants a pair. In quoted line of code it gets a pair and ptree(string) constructor is declared explicit. I have no idea why it was permitted without an explicit conversion before.",Bugs,closed,To Be Determined,property_tree,Boost 1.49.0,Problem,fixed,ptree read_json,