[#BloombergLP-bslalg-DequePrimitives_DequeEndpointProctor]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslalg.adoc[bslalg]::DequePrimitives&lowbar;DequeEndpointProctor
:relfileprefix: ../../
:mrdocs:

Proctor that restores a deque endpoint iterator on destruction&period;

== Synopsis

Declared in `&lt;bslalg&lowbar;dequeprimitives&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class VALUE&lowbar;TYPE,
    int BLOCK&lowbar;LENGTH&gt;
class DequePrimitives&lowbar;DequeEndpointProctor;
----

== Description

This class implements a proctor that, upon destruction and unless its `release` method has previously been invoked, sets a deque endpoint (i&period;e&period;, &quot;start&quot; or &quot;finish&quot; iterator) to a position within the deque&period; Both the endpoint and position are supplied at construction&period; See `emplaceAndMoveToBack` and `emplaceAndMoveToFront` for use cases&period;

== Type Aliases

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bslalg/DequePrimitives_DequeEndpointProctor/Iterator.adoc[`Iterator`] 
| Iterator type for the managed deque endpoint&period;
|===


== Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bslalg/DequePrimitives_DequeEndpointProctor/2constructor.adoc[`DequePrimitives&lowbar;DequeEndpointProctor`]         [.small]#[constructor]#
| Create a proctor that restores `endpoint` to `position` on destruction&period;
| xref:BloombergLP/bslalg/DequePrimitives_DequeEndpointProctor/2destructor.adoc[`&#126;DequePrimitives&lowbar;DequeEndpointProctor`] [.small]#[destructor]#
| Restore the proctored deque endpoint on destruction&period;
| xref:BloombergLP/bslalg/DequePrimitives_DequeEndpointProctor/release.adoc[`release`] 
| Release from management the deque endpoint currently managed by this proctor&period; If no endpoint is currently being managed, this method has no effect&period;
|===



[.small]#Created with https://www.mrdocs.com[MrDocs]#
