Boost logo

Boost Users :

Subject: Re: [Boost-users] [Iostreams] Safely returning filtering_istream from function
From: Larry Evans (cppljevans_at_[hidden])
Date: 2013-06-05 11:49:47


On 06/05/13 07:37, Szymon Gatner wrote:
> Hi,
>
> I would like to return filtering_istream via
> std::unique_ptr<std::iostream> so that client code can just use iostream
> interface without knowing what is actual stream type.
>
> Inside the factory function filtering_istream is prepared with possible
> filters attached. Problem is filters are attached by reference. My
> question is: how to elegantly attach filters to a filtering_istream so
> that they live as long as filtering_istream itself? How to attach a
> filter via shared_ptr for example?
>
> Regards,
> Szymon Gatner
>
>
Hi Szymon,

Could you not create a derived version of filtering_istream where
the 1st base class contained all the filters and the 2nd base
class was a filtering_istream. Then, I'd guess you could just
pass references to filters in 1st base class to the 2nd base
class, and they would live *almost* as long as the 2nd base
class. I say almost because the 1st base class would be
destroyed 1st. Would that be a problem? Hmm. Maybe the
1st base could be just a wrapped pointer which would be
deleted in the derived class?

-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