Boost logo

Boost Users :

Subject: Re: [Boost-users] [iostreams] How can I use the Stream Insertion operator (<<) with a filtering_streambuf?
From: Larry Evans (cppljevans_at_[hidden])
Date: 2013-07-26 09:49:44


On 07/26/13 06:39, Frédéric Bron wrote:
> This is how I do it with file_sink:
>
> boost::iostreams::filtering_ostream output_file;
> output_file.push(boost::iostreams::bzip2_compressor(boost::iostreams::bzip2_params(9)));
> output_file.push(boost::iostreams::file_sink("file.bz2",
> std::ios_base::binary));
> output_file<<"blalba";
>
> I think if you do just this, nothing happen until output_file is
> destroyed. So enclose in { }.
>
> Frédéric
>
Thanks Frederic.

However, I think this is not obvious. I would have thought Ken's
solution would have worked. I would have also thought mine would
have worked until I saw Ken's which indicated std::ios_base::binary
was needed when the std::ofstream was created.

Is there anywhere in the docs explaining why your method works
and Ken's doesn't?

-regards,
Larry


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net