I am reading a gzipped file using boost iostreams:
The following works fine:

```
 namespace io = boost::iostreams;
  io::filtering_istream in;
  in.push(boost::iostreams::basic_gzip_decompressor<>());
  in.push(io::file_source("test.gz"));
  stringstream ss;
  copy(in, ss);

```

However, I don't want to take the memory hit of reading an entire gzipped file
into memory. I want to be able to read the file incrementally.

For example, if I have a data structure X that initializes itself from istream,

```
X x;
x.read(in);

```

fails. Presumably this is because we may have to put back characters into the stream
if we are doing partial streams. Any ideas whether boost iostreams supports this?