BloombergLP::bslalg::ArrayPrimitives::insert

Insert copies of a value, shifting subsequent elements.

Synopsis

Declared in <bslalg_arrayprimitives.h>

template<class ALLOCATOR>
static
void
insert(
    bsl::allocator_traits<ALLOCATOR>::pointer toBegin,
    bsl::allocator_traits<ALLOCATOR>::pointer toEnd,
    bsl::allocator_traits<ALLOCATOR>::value_type const& value,
    size_type numElements,
    ALLOCATOR allocator);

Description

Insert the specified numElements copies of the specified value into the array of type allocator_traits<ALLOCATOR>::value_type starting at the specified toBegin location, shifting forward the elements from toBegin to the specified toEnd location by numElements positions. If a (copy or move) constructor or a (copy or move) assignment operator throws an exception, any elements created after toEnd are destroyed and the elements in the range [toBegin .. toEnd)] are left in a valid but unspecified state. The behavior is undefined unless toBegin refers to space sufficient to hold at least toEnd - toBegin + numElements elements.

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