BloombergLP::bdlma::BufferImpUtil::allocateNaturallyAlignedFromBuffer

Allocate a naturally-aligned memory block of the specified size (in bytes) from the specified buffer having the specified bufferSize (in bytes) at the specified cursor position. Return the address of the allocated memory block if buffer contains sufficient available memory, and 0 otherwise. The cursor is set to the first byte position immediately after the allocated memory if there is sufficient memory, and not modified otherwise. The behavior is undefined unless 0 < size, 0 <= *cursor, and *cursor <= bufferSize.

Synopsis

Declared in <bdlma_bufferimputil.h>

static
void*
allocateNaturallyAlignedFromBuffer(
    bsls::Types::IntPtr* cursor,
    char* buffer,
    bsls::Types::size_type bufferSize,
    bsls::Types::size_type size);