On 06/10/2016 04:59 AM, Emil Dotchevski wrote:
... The defining property of the pimpl idiom is that the private implementation type is left incomplete in the interface: the pointer is opaque...
Emil
Just happened to re-read Gamma's "Design Patterns". The Bridge section... which is the Pimpl... There the "hide the implementation" is mentioned in the Applicability section, i.e. what the pattern is good for... i.e. it's not the pattern's property... it's "only" its applicability... in the context of C++. As for copy-on-write, then Gamma et al explicitly mention it... in the Proxy pattern... which they position separately from Bridge... they do not even mention it in the Related Section... which to me is a bit too subtle... but admittedly subtlety is not my strong suit.