Boost logo

Boost :

From: Jonathan Turkanis (technews_at_[hidden])
Date: 2004-06-01 20:39:14


<slavek.f.kuzniar_at_[hidden]> wrote in message
news:OFBB047E1B.B12BDF48-ON85256EA6.004E93AD_at_ny.jpmorgan.com...
>
>
> I downloaded the library from the yahoo link you mentioned in the
review
> request. When trying to use 'filtered_stream' I ran into some
compilation
> issues (RedHat 9, g++ 3.3) and before looking into it I wanted to
know the
> review status. Knowing that the library is in the review pipeline I
will
> give it another try.

Thanks for trying it out. I'm sorry to hear about the compilation
problems. gcc 3.3 on Linux is defintely one of the supported
platforms. Last I rememeber it passed all the regression tests.

Normally, I would ask you to post your code and error messages, but I
think in this case it doesn't make much sense to patch an old version
of the library. I'd like to put up the new version and have you try it
out.

> Some time ago I developed simple iostream adapter 'library' that
allows to
> wrap IO device (sockets, pipes, etc) in std::[i,o,io]stream that is
very
> similar to your sink/source technique. One difference is that the
adapter
> is a template class parameterized by the source/sink types.

This is the approach I take in the latest version (actually its
present in the previous version but sort of hidden). There are two
main streambuf and stream templates -- streambuf_facade and
stream_facade -- both parameterized by a source/sink. (The names are
stolen from Boost.Iterator, of course.) For filtering there are also
two templates, filtering_streambuf and filtering_stream, parameterized
by a 'mode' (input, output, etc.) and by character type.

Basically, everything is simpler to use, and more flexible.

I've also improved the implementation. As an experiment I replaced tag
dispatch with a technique using is_convertible and simulated partial
specialization. To my amazement I found about a 30% speed-up on como
and found that Borland 5.6.4 runs about twice as fast.

>Since your
> library offers this functionality (plus much more) I am very pleased
it
> will become part of boost soon.

Thanks for the encouragement. I certainly hope it will become part of
boost.

Best Regards,
Jonathan


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk