BloombergLP::bslalg::ArrayPrimitives::destructiveMove

Destructively move elements into an uninitialized array.

Synopsis

Declared in <bslalg_arrayprimitives.h>

template<class TARGET_TYPE>
static
void
destructiveMove(
    TARGET_TYPE* toBegin,
    TARGET_TYPE* fromBegin,
    TARGET_TYPE* fromEnd,
    bslma::Allocator* allocator);

Description

Move the elements of the parameterized TARGET_TYPE in the array starting at the specified fromBegin address and ending immediately before the specified fromEnd address into an uninitialized array of TARGET_TYPE beginning at the specified toBegin address. On return, the elements in the input range are invalid, i.e., their destructors must not be called after this operation returns. If the parameterized ALLOCATOR type is derived from bslma::Allocator and TARGET_TYPE supports bslma allocators, then the specified allocator is used by the objects in their new location. If an exception is thrown by a TARGET_TYPE constructor during the operation, then the output array is left in an uninitialized state and the input elements remain in their original state.

Parameters

NameDescription
toBeginbeginning of the uninitialized destination range
fromBeginbeginning of the source range
fromEndend of the source range (one past the last element)
allocatorallocator used by objects in their new location