Boost logo

Boost :

Subject: Re: [boost] Review request for Boost.Align
From: Andrey Semashev (andrey.semashev_at_[hidden])
Date: 2014-02-20 03:52:02


On Thu, Feb 20, 2014 at 12:27 PM, Glen Fernandes
<glen.fernandes_at_[hidden]> wrote:
> Source: http://github.com/glenfe/align
>
> Documentation: http://glenfe.com/align/doc/
>
> Motivation: Tiny library to be used for all common alignment related
> chores found in a few Boost libraries. (e.g. we have some in
> Boost.Smart_Ptr).
>
> Provides:
> 1. Function boost::align, a pointer alignment function, for
> implementations that do not yet provide std::align. (Uses std::align
> if available)
>
> 2. Functions boost::aligned_alloc and boost::aligned_free, for aligned
> allocation and deallocation. (Use platform specific functions, such
> _aligned_malloc or posix_memalign, or otherwise uses std::malloc with
> the above boost::align)
>
> 3. Class template boost::aligned_allocator as a replacement for
> std::allocator that respects over-aligned types. (Up to the extent the
> implementation supports over-alignment)
>
> Many thanks to Peter Dimov for his feedback on the design and
> implementation of this library.
>
> Notes: Small enough that it might satisfy the requirements for a
> fast-track review.

First, nice to see this submission, I've been missing and
reimplementing this functionality from time to time.

Second, you may see this:

https://github.com/boostorg/log/blob/master/include/boost/log/detail/malloc_aligned.hpp

to improve portability of aligned_alloc. As you can see,
posix_memalign is not always available, even if advertised by POSIX
macros. Note also that posix_memalign imposes specific requirements on
the alignment that are not described in your docs. And
_aligned_malloc/_aligned_free are available on compilers other than
MSVC.


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