Boost logo

Boost :

From: Andrey Semashev (andrey.semashev_at_[hidden])
Date: 2020-12-03 07:47:24


On 12/3/20 5:13 AM, Edward Diener via Boost wrote:
> On 12/2/2020 10:36 AM, Andrey Semashev via Boost wrote:
>>
>> In Boost.Filesystem
>> (https://github.com/boostorg/filesystem/commit/498a090b531833355ea27cea94d0440c432f8afc)
>> directory iterators switched from shared_ptr to intrusive_ptr
>> internally. This changed the ABI but not API, and this change would
>> not have been detected by the linker since this change would not
>> affect library symbols. Even ignoring Boost.Filesystem library, if
>> some part of user's code is not recompiled with the new library
>> headers, there would be ABI mismatch and related problems.
>
> But if the end-user's code does not reference the internal directory
> iterators why does the end-user code need to recompile itself to match
> the change to the internal ABI ?

Directory iterators are not internal, they are public API. Their
implementation, where the change was made, is internal.


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