title: What is the type of the underlying stream of a boost::iostreams::filtering_stream?
body: <p>I have this stream that performs decompression using Boost.Iostreams:</p>
  
  <pre><code>struct istream_zlib
    : public boost::iostreams::filtering_stream&lt;boost::iostreams::input, char&gt;
  {
    istream_zlib(std::istream&amp; in)
    {
      push(boost::iostreams::zlib_decompressor());
      push(in);
    }
  };
  </code></pre>
  
  <p>Now, I would like to access the underlying stream (<code>std::istream&amp; in</code>) later on. Naively, I thought that requesting a <code>std::istream</code> through <code>component()</code> would do it, but the pointer I get back is <code>null</code>:</p>
  
  <pre><code>auto ptr = component&lt;std::istream&gt;(1); // ptr is null!
  </code></pre>
  
  <p>What type should I provide to <code>component()</code> for doing that?</p>