
On 06/06/2014 01:13 PM, Rob Stewart wrote:
... I took a quick look at the docs. First, like Edward, I was frustrated by how much I had to read to understand what the library offered and how. Second, you've extended the Pimpl Idiom. It has always been about moving the implementation details out of the header, not sharing those details. Thus, your value semantics implement the idiom and your pointer semantics provide something different.
... Hmm, that never occurred to me. I've never looked at my implementation as an extension of the pattern. I always felt I was true to the source so to speak. I have to think about it but my initial reaction is somewhat reluctance to accept that. Maybe I am too focused on or accustomed to the "pointer" part as "pointer" is all about sharing something cheaply. To me the first "implementation" of the Pimpl pattern was Widget in X Window System -- a hidden (unavailable in its entirety) implementation... only available via a handle/pointer... "pointer to implementation" does not get any more and purer than that... and obviously Widgets are passed around and the content they point to is shared. Hmm, I'll have to read more over the weekend.