Boost logo

Boost :

Subject: Re: [boost] Review Request: impl_ptr (pimpl)
From: Vladimir Batov (Vladimir.Batov_at_[hidden])
Date: 2017-08-16 08:44:04


On 2017-08-16 18:14, Andrzej Krzemienski via Boost wrote:
> 2017-08-15 2:51 GMT+02:00 Vladimir Batov via Boost
> <boost_at_[hidden]>:
> ...
> Is there some summary of changes since the last review? Also, could you
> remind us what was the reason for not accepting the library the last
> time?
> Submission was withdrawn, right?

It has never been through a proper review. It was scheduled for a review
some time ago but I had to withdraw it as it was scheduled right after
boost::convert and there was a lot of work after boost::convert
conditional acceptance. I was swamped and had to sacrifice, withdraw
"pimpl" back then.

As for the summary I do not have one. Fundamentally it is the same
idea/implementation... that uses/relies on impl_ptr<Foo>::implementation
specialization. It is much simpler with C++11. Its interface was brought
in-line with C++17 optional, variant, any, i.e. to use in_place. That
simplified it even further as many if_enable-based signatures were
eliminated. Then, the name changed to "impl_ptr" as "pimpl" turned out
too disruptive and controversial :-) -- everyone had their own
interpretation of it. Most importantly, it is now policy-based and I
implemented 4 policies -- shared ownership, unique exclusive ownership,
copied exclusive ownership, stack-based -- which I expect to satisfy the
majority of behavioral requests that came up during discussions before.
COW policy is on the TODO list.


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