[#bsl-Deque_Base]
= xref:bsl.adoc[bsl]::Deque&lowbar;Base
:relfileprefix: ../
:mrdocs:

Allocator&hyphen;independent layout and accessors shared by `deque`&period;

== Synopsis

Declared in `&lt;bslstl&lowbar;deque&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class VALUE&lowbar;TYPE&gt;
class Deque&lowbar;Base;
----

== Description

This class describes the basic layout for a deque class&period; It is important that this class has the same layout as the deque class implementation&period; It is parameterized by `VALUE&lowbar;TYPE` only and implements the portion of `bsl&colon;&colon;deque` that does not need to know about its (template parameter) type `ALLOCATOR` (in order to generate shorter debug strings)&period; Note that this class must have the same layout as `Deque&lowbar;Imp` (see implementation file)&period;

== Type Aliases

[cols="1,4"]
|===
| Name| Description
| xref:bsl/Deque_Base/const_iterator.adoc[`const&lowbar;iterator`] 
| This `typedef` is an alias for `const&lowbar;iterator`&period;
| xref:bsl/Deque_Base/const_reference.adoc[`const&lowbar;reference`] 
| This `typedef` is an alias for `const&lowbar;reference`&period;
| xref:bsl/Deque_Base/const_reverse_iterator.adoc[`const&lowbar;reverse&lowbar;iterator`] 
| This `typedef` is an alias to `bsl&colon;&colon;reverse&lowbar;iterator&lt;const&lowbar;iterator&gt;`&period;
| xref:bsl/Deque_Base/difference_type.adoc[`difference&lowbar;type`] 
| This `typedef` is an alias for `difference&lowbar;type`&period;
| xref:bsl/Deque_Base/iterator-03.adoc[`iterator`] 
| This `typedef` is an alias for `iterator`&period;
| xref:bsl/Deque_Base/reference.adoc[`reference`] 
| This `typedef` is an alias for `reference`&period;
| xref:bsl/Deque_Base/reverse_iterator.adoc[`reverse&lowbar;iterator`] 
| This `typedef` is an alias to `bsl&colon;&colon;reverse&lowbar;iterator&lt;iterator&gt;`&period;
| xref:bsl/Deque_Base/size_type.adoc[`size&lowbar;type`] 
| This `typedef` is an alias for `size&lowbar;type`&period;
| xref:bsl/Deque_Base/value_type.adoc[`value&lowbar;type`] 
| This `typedef` is an alias for `value&lowbar;type`&period;
|===


== Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:bsl/Deque_Base/at-04.adoc[`at`] 
| `at` overloads
| xref:bsl/Deque_Base/back-06.adoc[`back`] 
| `back` overloads
| xref:bsl/Deque_Base/begin-0fd.adoc[`begin`] 
| `begin` overloads
| xref:bsl/Deque_Base/capacity.adoc[`capacity`] 
| Return how many end insertions remain before iterators are invalidated&period;
| xref:bsl/Deque_Base/cbegin.adoc[`cbegin`] 
| Return an iterator providing non&hyphen;modifiable access to the first element in this deque, and the past&hyphen;the&hyphen;end iterator if this deque is empty&period;
| xref:bsl/Deque_Base/cend.adoc[`cend`] 
| Return the past&hyphen;the&hyphen;end (forward) iterator providing non&hyphen;modifiable access to this deque&period;
| xref:bsl/Deque_Base/crbegin.adoc[`crbegin`] 
| Return a reverse iterator providing non&hyphen;modifiable access to the last element in this deque, and the past&hyphen;the&hyphen;end reverse iterator if this deque is empty&period;
| xref:bsl/Deque_Base/crend.adoc[`crend`] 
| Return the past&hyphen;the&hyphen;end reverse iterator providing non&hyphen;modifiable access to this deque&period;
| xref:bsl/Deque_Base/empty.adoc[`empty`] 
| Return `true` if this deque contains no elements, and `false` otherwise&period;
| xref:bsl/Deque_Base/end-01.adoc[`end`] 
| `end` overloads
| xref:bsl/Deque_Base/front-04.adoc[`front`] 
| `front` overloads
| xref:bsl/Deque_Base/operator_subs-09.adoc[`operator&lsqb;&rsqb;`] 
| Subscript operators
| xref:bsl/Deque_Base/rbegin-09.adoc[`rbegin`] 
| `rbegin` overloads
| xref:bsl/Deque_Base/rend-02.adoc[`rend`] 
| `rend` overloads
| xref:bsl/Deque_Base/size.adoc[`size`] 
| Return the number of elements contained by this deque&period;
|===


== Protected Data Members

[cols="1,4"]
|===
| Name| Description
| xref:bsl/Deque_Base/d_blocksLength.adoc[`d&lowbar;blocksLength`] 
| Length of the `d&lowbar;blocks&lowbar;p` array&period;
| xref:bsl/Deque_Base/d_blocks_p.adoc[`d&lowbar;blocks&lowbar;p`] 
| Array of pointers to blocks (owned)&period;
| xref:bsl/Deque_Base/d_finish.adoc[`d&lowbar;finish`] 
| The `d&lowbar;finish` data member&period;
| xref:bsl/Deque_Base/d_start.adoc[`d&lowbar;start`] 
| The `d&lowbar;start` data member&period;
|===


== Derived Classes

[cols="1,4"]
|===
| Name| Description
| xref:bsl/deque-0c.adoc[`deque`] 
| STL&hyphen;compliant double&hyphen;ended sequence container using the `bslma` model&period;
|===


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