|  | Home | Libraries | People | FAQ | More | 
      C++11 added the ability to specify increased alignment (over-alignment) for
      class types. Unfortunately, ::operator new
      allocation functions, new expressions
      and the Default Allocator, std::allocator,
      do not support dynamic memory allocation of over-aligned data. This library
      provides allocation functions and allocators that respect the alignment requirements
      of a type and so are suitable for allocating memory for over-aligned types.
    
aligned_alloc(alignment, size)
            Replaces ::operator
            new(size, std::nothrow)
          
aligned_free(pointer)
            Replaces ::operator
            delete(pointer,
            std::nothrow)
          
aligned_allocator<T>
            Replaces std::allocator<T>
          
aligned_allocator_adaptor<Allocator>Replaces use of Allocator
aligned_delete
            Replaces std::default_delete<T>
          
      C++11 provided std::align in the standard library to align a
      pointer value. Unfortunately some C++ standard library implementations do not
      support it yet (libstdc++ as far as gcc 4.8.0) and other standard library implementations
      implement it incorrectly (dinkumware in msvc11.0). This library provides it
      for those implementations and also for C++03 compilers where it is equally
      useful.
    
      C++11 provided the std::alignment_of trait in the standard library
      to query the alignment requirement of a type. Unfortunately some C++ standard
      library vendors do not implement it in an entirely standard conforming manner,
      such as for array types (libc++ as far as clang 3.4). Other vendor implementations
      report incorrect values for certain types, such as pointer to members (msvc
      14.0). This library provides it for those implementations and also for C++03
      compilers where it is equally useful.
    
      Allocating aligned memory is sometimes not enough to ensure that optimal code
      is generated. Developers use specific compiler intrinsics to notify the compiler
      of a given alignment property of a memory block. This library provides a macro,
      BOOST_ALIGN_ASSUME_ALIGNED,
      to abstract that functionality for compilers with the appropriate intrinsics.
    
      This library provides a function, is_aligned
      to test the alignment of a pointer value. It is generally useful in assertions
      to validate that memory is correctly aligned.