Boost logo

Boost :

From: Michael Marcin (mmarcin_at_[hidden])
Date: 2007-11-03 22:07:45


Vladimir Batov wrote:
>> Out of curiosity in this and all other examples of this pimpl library
>> public inheritance is used. Isn't this an implemented in terms (spelled
>> private) of rather than an IS-A (spelled public) relationship?
>>
>> I'm sure there is a technical reason I'm missing.
>
> I the examples I build two separate hierarchies -- for interfaces and for
> implementations. Those examples are to demonstrate pimpl<> deployment for
> polymorphic classes, i.e. with IS-A kind of relationship. I am not sure
> where "implemented in terms" comes in as interfaces inherit from interfaces
> and implementations inherit from implementations. Clearly IS-A as far as I
> can see.
>

You consider pimpl part of the interface? Interesting... I've always
thought of it as an implementation detail to build compiler firewalls.
I.E. any class I've made using the pimpl idiom I could have built the
same interface with more external dependencies and heavier compile times.


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