|
Boost : |
From: Glen Fernandes (glen.fernandes_at_[hidden])
Date: 2019-08-12 13:42:48
Howard wrote:
> There is truth to this rationale, but I also wanted to point out that it is not absolute.
> [snip]
> Not providing a boost implementation does not preclude enhancing a std::lib.
> But it can certainly help in changing existing signatures,
Indeed. Of course, someone who wants to prototype some breaking change
to a library like chrono or smart_ptr can do it without Boost. For
example, we could have reimplemented ALL of shared_ptr in
github/JohnDoe/smart_ptr to prototype the extensions added in C++17
and C++20.
But here were some advantages of not doing so, and using Boost instead:
- NOT reimplementing ALL of shared_ptr
- Access to a bigger user base than github/JohnDoe/smart_ptr would have
e.g.
* Boost being white-listed as approved open source in many organizations
* New versions of Boost included in many Linux distribution software
repositories
* etc.
So it was an easy choice to go through Boost because boost::shared_ptr
wasn't just an alias for std::shared_ptr, and had a quality, well
tested, implementation.
Still, even with Smart_Ptr, you have the option to convince the
maintainer of Smart_Ptr to make boost::shared_ptr just an alias for
[C++17] std::shared_ptr, and make boost::allocate_shared just defer to
[C++20] std::allocate_shared.
It would make users unhappy. There are already users of
boost::local_shared_ptr which depends on the implementation of
boost::shared_ptr, that would continue using Boost even after C++20
features are implemented everywhere.
Glen
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk