This class provides a specialized proctor that bit-wise moves and destroys array segments upon destruction.
Declared in <bslalg_autoarraymovedestructor.h>
template<
class OBJECT_TYPE,
class ALLOCATOR = bsl::allocator<OBJECT_TYPE>>
class AutoArrayMoveDestructor;
Upon destruction and unless the release method has been called, this proctor bit-wise moves the elements in a segment of an array of parameterized OBJECT_TYPE back to some destination, and destroys some other elements in an adjacent segment of the same array. The elements destroyed are delimited by the range [ begin(), middle() )] and those moved to destination() and in the range [ middle(), end() )]. Note that, once constructed, begin() and end() remain fixed. As the guard advances, middle() and destination() move, reflecting the successful transfer of data between the moving range and the destination.
| Name | Description |
|---|---|
AutoArrayMoveDestructor [constructor] | Create a proctor for moving and destroying the specified array ranges. |
~AutoArrayMoveDestructor [destructor] | Bit-wise move the range [ middle(), end() )] to the destination() address and destroy [ begin(), middle() )]. |
advance | Increment both middle and destination pointers by one position. |
begin | Return the address at the beginning of the guarded range. |
destination | Return the destination address for elements moved on destruction. |
end | Return the address at the end of the guarded range. |
middle | Return the address at the middle of the guarded range. |