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
> 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
> 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.