BloombergLP::bslma::NewDeleteAllocator

Concrete allocator adapting global operator new and operator delete.

Synopsis

Declared in <bslma_newdeleteallocator.h>

class NewDeleteAllocator
    : public Allocator

Description

This class defines a concrete mechanism that adapts the system-supplied (native) global operator new and operator delete to the Allocator protocol. The class method singleton returns a process-wide unique object of this class whose lifetime is guaranteed to extend from the first call to singleton until the program terminates. A second class method, allocator, allows for conveniently replacing a "null" allocator with this singleton object. Note that this entire class should generally not be used directly by typical clients (see bslma_default for more information).

Base Classes

NameDescription
AllocatorPure abstract protocol for clients and suppliers of raw memory.

Type Aliases

NameDescription
size_type Alias for an unsigned integral type capable of representing the number of bytes in this platform's virtual address space.

Member Functions

NameDescription
NewDeleteAllocator [constructor]Create a new-delete allocator that wraps global new and delete.
~NewDeleteAllocator [destructor] [virtual]Destroy this allocator object. Note that destroying this allocator has no effect on any outstanding allocated memory.
operator=
allocate Allocate a block of memory of at least the specified size bytes.
deallocate Return the memory block at the specified address to this allocator.
deleteObject deleteObject overloads
deleteObjectRaw deleteObjectRaw overloads
is_equal

Static Member Functions

NameDescription
allocator Return basicAllocator, or this class's singleton if it is 0.
singleton Return a reference to a process-wide unique object of this class.
throwBadAlloc Throw std::bad_alloc or abort the program.

Protected Member Functions

NameDescription
do_allocate [virtual]Return a newly allocated block of at least bytes with alignment.
do_deallocate [virtual]Return the memory block at p having bytes and alignment.
do_is_equal [virtual]Return whether this allocator can exchange memory with other.