
Hi! I'm trying to compile the following function on Boost 1.34.1 (Ubuntu 8.04): void decompress(string &gzipString, string & target) { boost::iostreams::filtering_ostream decompressingStream; boost::iostreams::gzip_decompressor gzdc; decompressingStream.push(gzdc); decompressingStream.push(boost::iostreams::back_inserter(target)); decompressingStream << gzipString; boost::iostreams::flush(decompressingStream); } And I'm getting the following (quite long) error: /usr/include/boost/iostreams/chain.hpp: In member function ‘void boost::iostreams::detail::chain_base<Self, Ch, Tr, Alloc, Mode>::push_impl(const T&, int, int) [with T = boost::iostreams::basic_gzip_decompressor<std::allocator<char> >, Self = boost::iostreams::chain<boost::iostreams::output, char, std::char_traits<char>, std::allocator<char> >, Ch = char, Tr = std::char_traits<char>, Alloc = std::allocator<char>, Mode = boost::iostreams::output]’: /usr/include/boost/iostreams/chain.hpp:207: instantiated from ‘void boost::iostreams::detail::chain_base<Self, Ch, Tr, Alloc, Mode>::push(const T&, int, int, typename boost::disable_if<boost::iostreams::is_std_io<T>, void>::type*) [with T = boost::iostreams::basic_gzip_decompressor<std::allocator<char> >, Self = boost::iostreams::chain<boost::iostreams::output, char, std::char_traits<char>, std::allocator<char> >, Ch = char, Tr = std::char_traits<char>, Alloc = std::allocator<char>, Mode = boost::iostreams::output]’ /usr/include/boost/iostreams/chain.hpp:465: instantiated from ‘void boost::iostreams::detail::chain_client<Chain>::push_impl(const T&, int, int) [with T = boost::iostreams::basic_gzip_decompressor<std::allocator<char> >, Chain = boost::iostreams::chain<boost::iostreams::output, char, std::char_traits<char>, std::allocator<char> >]’ /usr/include/boost/iostreams/chain.hpp:453: instantiated from ‘void boost::iostreams::detail::chain_client<Chain>::push(const T&, int, int, typename boost::disable_if<boost::iostreams::is_std_io<T>, void>::type*) [with T = boost::iostreams::gzip_decompressor, Chain = boost::iostreams::chain<boost::iostreams::output, char, std::char_traits<char>, std::allocator<char> >]’ main.cpp:93: instantiated from here /usr/include/boost/iostreams/chain.hpp:233: error: invalid application of ‘sizeof’ to incomplete type ‘boost::STATIC_ASSERTION_FAILURE<false>’ /usr/include/boost/iostreams/stream_buffer.hpp: At global scope: /usr/include/boost/iostreams/stream_buffer.hpp: In instantiation of ‘boost::iostreams::stream_buffer<boost::iostreams::basic_gzip_decompressor<std::allocator<char>
, std::char_traits<char>, std::allocator<char>, boost::iostreams::output>’: /usr/include/boost/iostreams/chain.hpp:246: instantiated from ‘void boost::iostreams::detail::chain_base<Self, Ch, Tr, Alloc, Mode>::push_impl(const T&, int, int) [with T = boost::iostreams::basic_gzip_decompressor<std::allocator<char> >, Self = boost::iostreams::chain<boost::iostreams::output, char, std::char_traits<char>, std::allocator<char> >, Ch = char, Tr = std::char_traits<char>, Alloc = std::allocator<char>, Mode = boost::iostreams::output]’ /usr/include/boost/iostreams/chain.hpp:207: instantiated from ‘void boost::iostreams::detail::chain_base<Self, Ch, Tr, Alloc, Mode>::push(const T&, int, int, typename boost::disable_if<boost::iostreams::is_std_io<T>, void>::type*) [with T = boost::iostreams::basic_gzip_decompressor<std::allocator<char> >, Self = boost::iostreams::chain<boost::iostreams::output, char, std::char_traits<char>, std::allocator<char> >, Ch = char, Tr = std::char_traits<char>, Alloc = std::allocator<char>, Mode = boost::iostreams::output]’ /usr/include/boost/iostreams/chain.hpp:465: instantiated from ‘void boost::iostreams::detail::chain_client<Chain>::push_impl(const T&, int, int) [with T = boost::iostreams::basic_gzip_decompressor<std::allocator<char> >, Chain = boost::iostreams::chain<boost::iostreams::output, char, std::char_traits<char>, std::allocator<char> >]’ /usr/include/boost/iostreams/chain.hpp:453: instantiated from ‘void boost::iostreams::detail::chain_client<Chain>::push(const T&, int, int, typename boost::disable_if<boost::iostreams::is_std_io<T>, void>::type*) [with T = boost::iostreams::gzip_decompressor, Chain = boost::iostreams::chain<boost::iostreams::output, char, std::char_traits<char>, std::allocator<char> >]’ main.cpp:93: instantiated from here /usr/include/boost/iostreams/stream_buffer.hpp:66: error: invalid application of ‘sizeof’ to incomplete type ‘boost::STATIC_ASSERTION_FAILURE<false>’
A similar "compress" function seem to compile without any problems. Any ideas what can cause this error? Thanks, Einav -- View this message in context: http://www.nabble.com/Boost-gzip_decompressor---compilation-errors-tp2353538... Sent from the Boost - Users mailing list archive at Nabble.com.