BloombergLP::bslalg::DequePrimitives::emplaceAndMoveToBack

Emplace a value, shifting existing elements toward the back.

Synopsis

Declared in <bslalg_dequeprimitives.h>

template<
    class ALLOCATOR,
    class... Args>
static
void
emplaceAndMoveToBack(
    Iterator* toEnd,
    Iterator fromEnd,
    Iterator position,
    ALLOCATOR allocator,
    Args&&... arguments);

Description

Insert at the specified position a newly created VALUE_TYPE object, constructed by forwarding the specified allocator (if required) and the specified (variable number of) arguments to the corresponding constructor of VALUE_TYPE, and move the elements in the range [position .. fromEnd)] forward by 1 position. Load into the specified toEnd an iterator one past the inserted element (i.e., fromEnd + 1). The behavior is undefined unless fromEnd + 1 is a valid iterator (i.e., the block pointer array holds enough room after the fromEnd position to insert 1 element).

Parameters

NameDescription
toEndloads the end iterator after emplacement
fromEndcurrent end of the deque
positioninsertion position within the deque
allocatorallocator forwarded to the constructor when needed
argumentsconstructor arguments forwarded to VALUE_TYPE