Boost logo

Boost :

Subject: Re: [boost] c++03 library survey
From: Gavin Lambert (boost_at_[hidden])
Date: 2018-08-29 01:00:20


On 29/08/2018 01:09, Andrey Semashev wrote:
> For example, if I'm currently using Boost.Move or boost::shared_ptr,
> does this mean I have to port my code to native rvalue references and
> std::shared_ptr?

AFAIK, migrating from Boost.Move to native references is largely
invisible to external C++11 consumers, so as a maintainer you could
decide to leave the existing code (for reduced churn) or replace it (for
code simplicity), mostly at your own whim or even piecemeal. (Having
said that, Boost.Move does provide some code-readability improvements
for people not trained to recognise non-move vs. move-only vs. move+copy
based on constructor existence -- assuming you don't mind macros.)

(Of course, it's a breaking change for C++03 consumers, but presumably
you wouldn't care about them any more at that point.)

Migrating from boost::shared_ptr to std::shared_ptr is a different
story; while the types are similar they are not identical (Boost has
more features). Where only used in private members it's an ABI break,
but probably an insignificant one. Where used in public members it is a
significant change that would require user code to change as well.

Which isn't to say that you shouldn't do it -- particularly if you don't
need the extra features of boost::shared_ptr -- but it may require more
thought and/or caution.

(You make this same point later yourself in regard to Boost.Atomic.)


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