Emplace a value, shifting existing elements toward the front.

Synopsis

Declared in <bslalg_dequeprimitives.h>

template<
    class ALLOCATOR,
    class... Args>
static
void
emplaceAndMoveToFront(
    Iterator* toBegin,
    Iterator fromBegin,
    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 [fromBegin .. position)] backward by 1 position. Load into the specified toBegin an iterator to the inserted element (i.e., fromBegin ‐ 1). The behavior is undefined unless fromBegin ‐ 1 is a valid iterator (i.e., the block pointer array holds enough room before the fromBegin position to insert 1 element).

Parameters

Name

Description

toBegin

loads the beginning iterator after emplacement

fromBegin

current beginning 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