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

Name

Description

toEnd

loads the end iterator after emplacement

fromEnd

current end of the deque

position

insertion position within the deque

allocator

allocator forwarded to the constructor when needed

arguments

constructor arguments forwarded to VALUE_TYPE

Created with MrDocs