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