BloombergLP::bslalg::DequePrimitives::emplaceAndMoveToBackDispatch

Emplace a value toward the back (bitwise-copyable dispatch).

Synopsis

Declared in <bslalg_dequeprimitives.h>

template<
    class ALLOCATOR,
    class... Args>
static
void
emplaceAndMoveToBackDispatch(
    Iterator* toEnd,
    Iterator fromEnd,
    Iterator position,
    ALLOCATOR allocator,
    bsl::integral_constant<int, BSLALG_DEQUEPRIMITIVES_BITWISE_COPYABLE_TRAITS> traits,
    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). Note that the next to last argument is for removing overload ambiguities and is not used.

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
traitsunused trait tag for overload resolution
argumentsconstructor arguments forwarded to VALUE_TYPE