id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 12621,property_tree::read_json does not work with BOOST_BIND_NO_PLACEHOLDERS,ja2222ja@…,Sebastian Redl,"Minimal code example: {{{ #define BOOST_BIND_NO_PLACEHOLDERS #include #include using namespace std::placeholders; int main () { boost::property_tree::ptree pt; boost::property_tree::read_json(""lol"", pt); } }}} Visual Studio 2015 Update 3 with v120 toolkit generates: {{{ \lib\native\include\boost\bind\bind.hpp(319): error C2664: 'void boost::_mfi::mf1,char>::operator ()(T *,A1) const' : cannot convert argument 2 from 'std::_Ph<1>' to 'char' 1> with 1> [ 1> Ptree=boost::property_tree::ptree 1> , T=boost::property_tree::json_parser::detail::standard_callbacks 1> , A1=char 1> ] 1> No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called }}} First affected version: 1.59 [which introduces the new json parser] My investigation shows that {{{property_tree::json_parser::detail::standard_callbacks::operator()}}} uses unqualified {{{_1}}} symbol. Since {{{#define BOOST_BIND_NO_PLACEHOLDERS}}} is used, compiler don't know nothing about {{{_1}}}. Error msg generated in msvc shows that {{{boost::bind}}} is messed up with {{{std::placeholders::_1}}}. The problem might be causes by no two-phase-lookup in {{{cl}}}. {{{using namespace std::placeholders}}} affects mentioned {{{_1}}} usage in {{{operator()}}} since lookup for non dependent {{{_1}}} is done later. Fixing issue in boost should workaround the msvc issue. Please note that without {{{#define BOOST_BIND_NO_PLACEHOLDERS}}} everything works ok.",Bugs,new,To Be Determined,property_tree,Boost 1.61.0,Regression,,,kaballo86@…