BloombergLP::bslalg::DequePrimitives::emplaceAndMoveToFrontDispatch

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

Synopsis

Declared in <bslalg_dequeprimitives.h>

template<
    class ALLOCATOR,
    class... Args>
static
void
emplaceAndMoveToFrontDispatch(
    Iterator* toBegin,
    Iterator fromBegin,
    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 [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). Note that the next to last argument is for removing overload ambiguities and is not used.

Parameters

NameDescription
toBeginloads the beginning iterator after emplacement
fromBegincurrent beginning 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