[#BloombergLP-bslalg-AutoArrayMoveDestructor-2constructor] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslalg.adoc[bslalg]::xref:BloombergLP/bslalg/AutoArrayMoveDestructor.adoc[AutoArrayMoveDestructor]::AutoArrayMoveDestructor :relfileprefix: ../../../ :mrdocs: Create a proctor for moving and destroying the specified array ranges. == Synopsis Declared in `<bslalg_autoarraymovedestructor.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- AutoArrayMoveDestructor( OBJECT_TYPE* destination, OBJECT_TYPE* begin, OBJECT_TYPE* middle, OBJECT_TYPE* end, ALLOCATOR allocator = ALLOCATOR()); ---- == Description Create a proctor for the sequence of elements of the parameterized `OBJECT_TYPE` in the specified range `[ begin, end )]` which, upon destruction, moves the range `[ begin, middle )]` to the specified `destination` and destroys the `[ middle, end )]` range. The behavior is undefined unless `begin`, `middle`, and `end` refer to a contiguous sequence of initialized `OBJECT_TYPE` objects, where `begin <= middle <= end`, and `destination` refers to a contiguous sequence of (uninitialized) memory of sufficient size to hold `end ‐ begin` `OBJECT_TYPE` objects (which must not overlap `[begin, end)]`). == Parameters [cols="1,4"] |=== | Name| Description | *destination* | address to which guarded elements are moved | *begin* | beginning of the guarded range of initialized elements | *middle* | first element to move (also end of the destroy range) | *end* | end of the guarded range (one past the last element) | *allocator* | allocator used to destroy elements |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#