収縮したjsonを読み込もうとして、型変換の問題が発生しています。コードは次のとおりです。
boost::iostreams::filtering_streambuf<boost::iostreams::input> in;
std::istringstream iss(std::ios::binary);
iss.rdbuf()->pubsetbuf(buf, len);
iss.imbue( std::locale("ru_RU.CP1251") );
in.push( boost::iostreams::zlib_decompressor() );
in.push( iss );
boost::property_tree::ptree pt;
boost::property_tree::json_parser::read_json(in, pt); // <-- Compile error
コンパイラは言う:
src / ABPacking.cpp:48:エラー:'read_json(boost :: iostreams :: filtering_streambuf、std :: allocator、boost :: iostreams :: public _>&、boost :: property_tree :: ptree&)の呼び出しに一致する関数がありません'</ p>
問題は、不要なデータをコピーせずにfiltering_streambufをread_jsonに渡す方法です。