[#BloombergLP-bslalg-ArrayPrimitives-rotate] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslalg.adoc[bslalg]::xref:BloombergLP/bslalg/ArrayPrimitives.adoc[ArrayPrimitives]::rotate :relfileprefix: ../../../ :mrdocs: Move the elements of the parameterized `TARGET_TYPE` in the array starting at the specified `first` address and ending immediately before the specified `middle` address to the array of the same length ending at the specified `last` address (and thus starting at the `last ‐ (middle ‐ first)` address), and move the elements previously in the array starting at `middle` and ending at `last` down to the `first` address. If the assignment operator throws an exception during this process, all of the elements in `[ first, last )]` will have unspecified, but valid, values. The behavior is undefined unless `first <= middle <= last`. == Synopsis Declared in `<bslalg_arrayprimitives.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class TARGET_TYPE> static void rotate( TARGET_TYPE* first, TARGET_TYPE* middle, TARGET_TYPE* last); ---- [.small]#Created with https://www.mrdocs.com[MrDocs]#