[#bsl-Deque_Base] = xref:bsl.adoc[bsl]::Deque_Base :relfileprefix: ../ :mrdocs: This class describes the basic layout for a deque class. It is important that this class has the same layout as the deque class implementation. It is parameterized by `VALUE_TYPE` only and implements the portion of `bsl::deque` that does not need to know about its (template parameter) type `ALLOCATOR` (in order to generate shorter debug strings). Note that this class must have the same layout as `Deque_Imp` (see implementation file). == Synopsis Declared in `<bslstl_deque.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class VALUE_TYPE> class Deque_Base; ---- == Type Aliases [cols="1,4"] |=== | Name| Description | xref:bsl/Deque_Base/const_iterator.adoc[`const_iterator`] | This `typedef` is an alias for `const_iterator`. | xref:bsl/Deque_Base/const_reference.adoc[`const_reference`] | This `typedef` is an alias for `const_reference`. | xref:bsl/Deque_Base/const_reverse_iterator.adoc[`const_reverse_iterator`] | This `typedef` is an alias to `bsl::reverse_iterator<const_iterator>`. | xref:bsl/Deque_Base/difference_type.adoc[`difference_type`] | This `typedef` is an alias for `difference_type`. | xref:bsl/Deque_Base/iterator-03.adoc[`iterator`] | This `typedef` is an alias for `iterator`. | xref:bsl/Deque_Base/reference.adoc[`reference`] | This `typedef` is an alias for `reference`. | xref:bsl/Deque_Base/reverse_iterator.adoc[`reverse_iterator`] | This `typedef` is an alias to `bsl::reverse_iterator<iterator>`. | xref:bsl/Deque_Base/size_type.adoc[`size_type`] | This `typedef` is an alias for `size_type`. | xref:bsl/Deque_Base/value_type.adoc[`value_type`] | This `typedef` is an alias for `value_type`. |=== == 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 the sum of the current size of this deque plus the minimum number of `push_front` or `push_back` operations needed to invalidate iterators in this deque. Note that this method is not part of the C++ standard. | xref:bsl/Deque_Base/cbegin.adoc[`cbegin`] | Return an iterator providing non‐modifiable access to the first element in this deque, and the past‐the‐end iterator if this deque is empty. | xref:bsl/Deque_Base/cend.adoc[`cend`] | Return the past‐the‐end (forward) iterator providing non‐modifiable access to this deque. | xref:bsl/Deque_Base/crbegin.adoc[`crbegin`] | Return a reverse iterator providing non‐modifiable access to the last element in this deque, and the past‐the‐end reverse iterator if this deque is empty. | xref:bsl/Deque_Base/crend.adoc[`crend`] | Return the past‐the‐end reverse iterator providing non‐modifiable access to this deque. | xref:bsl/Deque_Base/empty.adoc[`empty`] | Return `true` if this deque contains no elements, and `false` otherwise. | 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[]`] | 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. |=== == Protected Data Members [cols="1,4"] |=== | Name| Description | xref:bsl/Deque_Base/d_blocksLength.adoc[`d_blocksLength`] | Length of the `d_blocks_p` array. | xref:bsl/Deque_Base/d_blocks_p.adoc[`d_blocks_p`] | Array of pointers to blocks (owned). | xref:bsl/Deque_Base/d_finish.adoc[`d_finish`] | The `d_finish` data member. | xref:bsl/Deque_Base/d_start.adoc[`d_start`] | The `d_start` data member. |=== == Derived Classes [cols="1,4"] |=== | Name| Description | xref:bsl/deque-0c.adoc[`deque`] | This class template provides an STL‐compliant `deque` that conforms to the `bslma::Allocator` model. For the requirements of a deque class, consult the C++11 standard. In particular, this implementation offers the general rules that: 1. A call to any method that would result in a deque having a size greater than the value returned by `max_size` triggers a call to `bslstl::StdExceptUtil::throwLengthError`. 2. A call to an `at` method that attempts to access a position outside of the valid range of a deque triggers a call to `bslstl::StdExceptUtil::throwOutOfRange`. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#