C++ 如何直接使用boost::iostreams过滤器

C++ 如何直接使用boost::iostreams过滤器,c++,boost,boost-iostreams,C++,Boost,Boost Iostreams,如何使用boost::iostreams::gzip_解压器来解压boost::asio::streambuf的序列 以下是我的想法(非工作伪代码): structfoo{ 公众: 无效数据(boost::asio::streambuf&buf){ z、 写入(boost::asio::buffer_cast(buf.data()),buf.size()); while(write()); } 无效刷新(){ z、 冲洗(); while(write()); } 私人: bool write()

如何使用boost::iostreams::gzip_解压器来解压boost::asio::streambuf的序列

以下是我的想法(非工作伪代码):

structfoo{
公众:
无效数据(boost::asio::streambuf&buf){
z、 写入(boost::asio::buffer_cast(buf.data()),buf.size());
while(write());
}
无效刷新(){
z、 冲洗();
while(write());
}
私人:
bool write(){
char-buf[1024];
大小_t s=z.read(buf,1024);
标准::cout
struct Foo {
public:
    void sinkData(boost::asio::streambuf & buf) {
        z.write(boost::asio::buffer_cast<const char*>(buf.data()), buf.size());
        while(write());
    }

    void flush() {
        z.flush();
        while(write());
    }

private:
    bool write() {
        char buf[1024];
        size_t s = z.read(buf, 1024);
        std::cout << std::string(buf, s) << std::endl;
        return 
    }

    gzip_decompressor z;
}