Subject: Re: [boost] interest in a stateful pointer library?
From: Hans Dembinski (hans.dembinski_at_[hidden])
Date: 2017-10-09 12:06:07


Hi Glen,

> On 9. Oct 2017, at 13:42, Glen Fernandes via Boost <boost_at_[hidden]> wrote:
>
> On Mon, Oct 9, 2017 at 5:32 AM, Hans Dembinski wrote:
>> Please have a look at the updated README on Github. tagged_ptr uses
>> Boost.Align to get pointers with a special bit pattern which allows to
>> perfectly predict these bits and therefore use them to hold state. I thought
>> that this trick was platform-independent, since Boost.Align seems platform-
>> independent, but smart people on Reddit showed me that I am relying on
>> undefined behaviour here. It turns out that the conversion between
>> memory address and integers may not be as trivial as it is on a x86
>> machine, and then this trick would fail.
>
> If you're referring to the implementation of boost::alignment::align,
> it is platform-dependent. i.e. That is one of the reasons we wanted it
> in a Boost library: So that if there is a C++ implementation which
> requires a different platform-dependent solution, then
> boost::alignment::align will be updated to support that too.

ok, thanks for clarifying this. I understood that, but I was not very clear in my statement. AFAIU, Boost.Align also has a fall-back solution for unsupported systems, where more memory is allocated than necessary to assure the alignment. In that sense the library is "platform-independent" in that it would always do what it is supposed to do, although perhaps not as efficiently as possible.

Best regards,
Hans