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

Name

Description

Allocator

Pure abstract protocol for clients and suppliers of raw memory.

Type Aliases

Name

Description

size_type

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

Member Functions

Name

Description

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

Name

Description

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

Name

Description

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.

Created with MrDocs