title: Cannot create basic_vectorstream<std::vector<char>> in Boost 1.55+
body: <p>Moving from Boost 1.54 to 1.55 I now get this error during compilation (VS2010):</p>
  
  <pre><code>void GzipDecompression::Decompress(const unsigned char * src, int length)
  {
    if(src)
    {
        // Create an input-stream source for the data buffer so we can used the boost filtering buffer
        std::ifstream inputstream;
        typedef boost::iostreams::basic_array_source&lt;char&gt; Device;
        boost::iostreams::stream_buffer&lt;Device&gt; buffer((char *)src, length);
  
        // Inflate using the GZIP filter
        filtering_streambuf&lt;input&gt; in;
        in.push(gzip_decompressor());
        in.push(buffer);
  
        // Get the result into a vector
        boost::interprocess::basic_vectorstream&lt;std::vector&lt;char&gt;&gt; vectorStream;
        copy(in, vectorStream);
        std::vector&lt;char&gt; output(vectorStream.vector()); 
    }
  }
  
  error C2243: 'type cast' : conversion from 'boost::interprocess::basic_vectorstream&lt;CharVector&gt; *' to 'volatile const std::basic_streambuf&lt;_Elem,_Traits&gt; *' exists, but is inaccessible    c:\boost\boost_1_55_0\boost\iostreams\traits.hpp    57  1   
  </code></pre>
  
  <p>It appears this is now failing:</p>
  
  <pre><code>boost::interprocess::basic_vectorstream&lt;std::vector&lt;char&gt;&gt; vectorStream;
  </code></pre>
  
  <p>What has changed so this doesn't compile?</p>
  
  <p>Update After Reply: I've tried changing the output to this:</p>
  
  <pre><code>  std::istream instream(&amp;in);
  
    typedef std::istream_iterator&lt;char&gt; istream_iterator;
    typedef std::ostream_iterator&lt;char&gt; ostream_iterator;
  
    std::vector&lt;char&gt; output;
    std::copy(istream_iterator(instream), istream_iterator(), std::back_inserter(output));
  </code></pre>
  
  <p>But the output is different.  Do I have to flush the stream or something?</p>
  
  <p>Update2:  Apparently the istream_iterator strips CR LF etc. Here is my working function</p>
  
  <pre><code>void GzipDecompression::Decompress(const unsigned char * src, int length)
  {
    if(src)
    {
        // Create an input-stream source for the data buffer so we can used the boost filtering buffer
        std::ifstream inputstream;
        typedef boost::iostreams::basic_array_source&lt;char&gt; Device;
        boost::iostreams::stream_buffer&lt;Device&gt; buffer((char *)src, length);
  
        // Inflate using the GZIP filter
        filtering_streambuf&lt;input&gt; in;
        in.push(gzip_decompressor());
        in.push(buffer);
  
        // Get the result into a vector
        std::istream instream(&amp;in);
  
        typedef std::istreambuf_iterator&lt;char&gt; istreambuf_iterator;
  
  
        std::vector&lt;char&gt; output;
        std::copy(istreambuf_iterator(instream), istreambuf_iterator(), std::back_inserter(output));
  
    }
  }
  </code></pre>
  
  <p>Thanks</p>