Emplace a value toward the back (bitwise-copyable dispatch).
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);
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.
| 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 |
| traits | unused trait tag for overload resolution |
| arguments | constructor arguments forwarded to VALUE_TYPE |