Boost logo

Boost Users :

From: Jonathan Turkanis (turkanis_at_[hidden])
Date: 2008-01-09 13:49:17


frederic.bron_at_[hidden] wrote:
>
> ok, I have seen this now, thanks. However, I must create a derived
> class from dual_use_filter and those no-op operation are not virtual
> and it is good practice not to redefine non-virtual member
> functions.

> So what's happening whenever I use a pointer or reference to a base
> class?

sink, source, filter, dual_use_filter, etc., are designed specifically
to allow user-defined components to inherit a partial implementation;
they are like std::iterator or std::unary function in this respect.
A pointer to the base class would be useless, because the base does
not actually model any of the Boost.Iostreams concepts. dual_use_filter
is not actually a model of Dual Use Filter; it is just a helper.

If you feel uncomfortable using the convenience classes, it is simple
enough to define a component from scratch by defining suitable member
types char_type and category.

> Maybe this never happens because chain.push takes a template
> parameter... am I right?

Yes

> Regards,
>
> F. Bron

Best Regards,

--
Jonathan Turkanis
CodeRage
http://www.coderage.com

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