BloombergLP::bslalg::ArrayPrimitives::insert

Insert copies of a value, shifting subsequent elements.

Synopsis

Declared in <bslalg_arrayprimitives.h>

template<class TARGET_TYPE>
static
void
insert(
    TARGET_TYPE* toBegin,
    TARGET_TYPE* toEnd,
    TARGET_TYPE const& value,
    size_type numElements,
    bslma::Allocator* allocator);

Description

Insert the specified numElements copies of the specified value into the array of (template parameter) TARGET_TYPE starting at the specified toBegin address and ending immediately before the specified toEnd address, shifting the elements in the array by numElements positions towards larger addresses. The behavior is undefined unless the destination array contains at least numElements uninitialized elements after toEnd. If a copy constructor or assignment operator for TARGET_TYPE throws an exception, then any elements created after toEnd are destroyed and the elements in the range [ toBegin, toEnd )] will have unspecified, but valid, values.

Parameters

NameDescription
toBegininsertion position within the destination array
toEndend of the populated destination range
valuevalue copied into each inserted element
numElementsnumber of copies of value to insert
allocatorallocator used to supply memory if required