【发布时间】:2014-02-21 19:41:42
【问题描述】:
我会简短:我有这段代码:
QByteArray MyNBT::decompressData(QByteArray data)
{
filtering_streambuf<input> in;
std::string _data = data.data();
in.push( gzip_decompressor() );
in.push( boost::iostreams::back_inserter(_data) );
//in.push( std::back_inserter(_data) );
std::stringstream _sstream;
boost::iostreams::copy(in, _sstream);
QByteArray out = _sstream.rdbuf()->str().c_str();
return out;
}
它在这一行给出了一个错误:
in.push( boost::iostreams::back_inserter(_data) );
//in.push( std::back_inserter(_data) );
错误是:
/usr/include/boost/iostreams/chain.hpp:244: error: invalid application of 'sizeof' to incomplete type 'boost::STATIC_ASSERTION_FAILURE<false>'
BOOST_STATIC_ASSERT((is_convertible<category, Mode>::value));
^
编译器在std::back_inserter(_data) 中抛出此错误一次,在 boost 中抛出两次。
提前致谢。
【问题讨论】:
标签: c++ boost gzip boost-iostreams