Loading...
Searching...
No Matches
deque

## Classes

class | etl::deque_exception
class | etl::deque_full
class | etl::deque_empty
class | etl::deque_out_of_bounds
class | etl::deque_base
class | etl::ideque< T >
class | etl::deque< T, MAX_SIZE_ >

## Functions

template<typename T>
bool | etl::operator== (const etl::ideque< T > &lhs, const etl::ideque< T > &rhs)
| Template deduction guides.
template<typename T>
bool | etl::operator!= (const etl::ideque< T > &lhs, const etl::ideque< T > &rhs)
template<typename T>
bool | etl::operator< (const etl::ideque< T > &lhs, const etl::ideque< T > &rhs)
template<typename T>
bool | etl::operator<= (const etl::ideque< T > &lhs, const etl::ideque< T > &rhs)
template<typename T>
bool | etl::operator> (const etl::ideque< T > &lhs, const etl::ideque< T > &rhs)
template<typename T>
bool | etl::operator>= (const etl::ideque< T > &lhs, const etl::ideque< T > &rhs)

## Detailed Description

A double ended queue with the capacity defined at compile time.

## Class Documentation

## etl::deque_exception

class etl::deque_exception

Exception base for deques

### Public Member Functions

| deque_exception (string_type reason_, string_type file_name_, numeric_type line_number_)
Public Member Functions inherited from etl::exception
ETL_EXCEPTION_CONSTEXPR | exception (string_type reason_, string_type, numeric_type)
| Constructor.
ETL_EXCEPTION_CONSTEXPR string_type | what () const ETL_NOEXCEPT ETL_EXCEPTION_OVERRIDE
ETL_EXCEPTION_CONSTEXPR string_type | file_name () const
ETL_EXCEPTION_CONSTEXPR numeric_type | line_number () const

## Additional Inherited Members

Public Types inherited from etl::exception
typedef const char * | string_type
typedef int | numeric_type

## etl::deque_full

class etl::deque_full

Deque full exception.

### Public Member Functions

| deque_full (string_type file_name_, numeric_type line_number_)
Public Member Functions inherited from etl::deque_exception
| deque_exception (string_type reason_, string_type file_name_, numeric_type line_number_)
Public Member Functions inherited from etl::exception
ETL_EXCEPTION_CONSTEXPR | exception (string_type reason_, string_type, numeric_type)
| Constructor.
ETL_EXCEPTION_CONSTEXPR string_type | what () const ETL_NOEXCEPT ETL_EXCEPTION_OVERRIDE
ETL_EXCEPTION_CONSTEXPR string_type | file_name () const
ETL_EXCEPTION_CONSTEXPR numeric_type | line_number () const

## Additional Inherited Members

Public Types inherited from etl::exception
typedef const char * | string_type
typedef int | numeric_type

## etl::deque_empty

class etl::deque_empty

Deque empty exception.

### Public Member Functions

| deque_empty (string_type file_name_, numeric_type line_number_)
Public Member Functions inherited from etl::deque_exception
| deque_exception (string_type reason_, string_type file_name_, numeric_type line_number_)
Public Member Functions inherited from etl::exception
ETL_EXCEPTION_CONSTEXPR | exception (string_type reason_, string_type, numeric_type)
| Constructor.
ETL_EXCEPTION_CONSTEXPR string_type | what () const ETL_NOEXCEPT ETL_EXCEPTION_OVERRIDE
ETL_EXCEPTION_CONSTEXPR string_type | file_name () const
ETL_EXCEPTION_CONSTEXPR numeric_type | line_number () const

## Additional Inherited Members

Public Types inherited from etl::exception
typedef const char * | string_type
typedef int | numeric_type

## etl::deque_out_of_bounds

class etl::deque_out_of_bounds

Deque out of bounds exception.

### Public Member Functions

| deque_out_of_bounds (string_type file_name_, numeric_type line_number_)
Public Member Functions inherited from etl::deque_exception
| deque_exception (string_type reason_, string_type file_name_, numeric_type line_number_)
Public Member Functions inherited from etl::exception
ETL_EXCEPTION_CONSTEXPR | exception (string_type reason_, string_type, numeric_type)
| Constructor.
ETL_EXCEPTION_CONSTEXPR string_type | what () const ETL_NOEXCEPT ETL_EXCEPTION_OVERRIDE
ETL_EXCEPTION_CONSTEXPR string_type | file_name () const
ETL_EXCEPTION_CONSTEXPR numeric_type | line_number () const

## Additional Inherited Members

Public Types inherited from etl::exception
typedef const char * | string_type
typedef int | numeric_type

## etl::deque_base

class etl::deque_base

The base class for all templated deque types.

### Public Types

typedef size_t | size_type

### Public Member Functions

size_type | size () const
bool | empty () const
bool | full () const
size_type | max_size () const
size_type | capacity () const
size_t | available () const

### Protected Member Functions

| deque_base (size_t max_size_, size_t buffer_size_)
| Constructor.
| ~deque_base ()
| Destructor.

### Protected Attributes

size_type | current_size
| The current number of elements in the deque.
const size_type | CAPACITY
| The maximum number of elements in the deque.
const size_type | Buffer_Size
| The number of elements in the buffer.
| ETL_DECLARE_DEBUG_COUNT
| Internal debugging.

#### Member Function Documentation

## available()

size_t etl::deque_base::available | ( |  | ) | const

inline

Returns the remaining capacity.

Returns
  The remaining capacity.

## capacity()

size_type etl::deque_base::capacity | ( |  | ) | const

inline

Returns the maximum possible size of the deque.

Returns
  The maximum size of the deque.

## empty()

bool etl::deque_base::empty | ( |  | ) | const

inline

Checks the 'empty' state of the deque.

Returns
  true if empty.

## full()

bool etl::deque_base::full | ( |  | ) | const

inline

Checks the 'full' state of the deque.

Returns
  true if full.

## max_size()

size_type etl::deque_base::max_size | ( |  | ) | const

inline

Returns the maximum possible size of the deque.

Returns
  The maximum size of the deque.

## size()

size_type etl::deque_base::size | ( |  | ) | const

inline

Gets the current size of the deque.

Returns
  The current size of the deque.

## etl::ideque

class etl::ideque

template<typename T>
class etl::ideque< T >

The base class for all etl::deque classes.

Template Parameters

  T | The type of values this deque should hold.

### Public Types

typedef T | value_type
typedef size_t | size_type
typedef T & | reference
typedef const T & | const_reference
typedef T * | pointer
typedef const T * | const_pointer
typedef etl::iterator_traits< pointer >::difference_type | difference_type
typedef ETL_OR_STD::reverse_iterator< iterator > | reverse_iterator
typedef ETL_OR_STD::reverse_iterator< const_iterator > | const_reverse_iterator
Public Types inherited from etl::deque_base
typedef size_t | size_type

### Public Member Functions

template<typename TIterator>
etl::enable_if<!etl::is_integral< TIterator >::value, void >::type | assign (TIterator range_begin, TIterator range_end)
| Assigns a range to the deque.
void | assign (size_type n, const value_type &value)
reference | at (size_t index)
const_reference | at (size_t index) const
reference | operator[] (size_t index)
const_reference | operator[] (size_t index) const
reference | front ()
const_reference | front () const
reference | back ()
const_reference | back () const
iterator | begin ()
| Gets an iterator to the beginning of the deque.
const_iterator | begin () const
| Gets a const iterator to the beginning of the deque.
const_iterator | cbegin () const
| Gets a const iterator to the beginning of the deque.
iterator | end ()
| Gets an iterator to the end of the deque.
const_iterator | end () const
| Gets a const iterator to the end of the deque.
const_iterator | cend () const
| Gets a const iterator to the end of the deque.
reverse_iterator | rbegin ()
| Gets a reverse iterator to the end of the deque.
const_reverse_iterator | rbegin () const
| Gets a const reverse iterator to the end of the deque.
const_reverse_iterator | crbegin () const
| Gets a const reverse iterator to the end of the deque.
reverse_iterator | rend ()
| Gets a reverse iterator to the beginning of the deque.
const_reverse_iterator | rend () const
| Gets a const reverse iterator to the beginning of the deque.
const_reverse_iterator | crend () const
| Gets a const reverse iterator to the beginning of the deque.
void | clear ()
| Clears the deque.
void | fill (const T &value)
| Fills the deque.
iterator | insert (const_iterator insert_position, const value_type &value)
template<typename T1>
iterator | emplace (const_iterator insert_position, const T1 &value1)
template<typename T1, typename T2>
iterator | emplace (const_iterator insert_position, const T1 &value1, const T2 &value2)
template<typename T1, typename T2, typename T3>
iterator | emplace (const_iterator insert_position, const T1 &value1, const T2 &value2, const T3 &value3)
template<typename T1, typename T2, typename T3, typename T4>
iterator | emplace (const_iterator insert_position, const T1 &value1, const T2 &value2, const T3 &value3, const T4 &value4)
iterator | insert (const_iterator insert_position, size_type n, const value_type &value)
template<typename TIterator>
enable_if<!etl::is_integral< TIterator >::value, iterator >::type | insert (const_iterator insert_position, TIterator range_begin, TIterator range_end)
iterator | erase (const_iterator erase_position)
iterator | erase (const_iterator range_begin, const_iterator range_end)
void | push_back (const_reference item)
reference | emplace_back ()
template<typename T1>
reference | emplace_back (const T1 &value1)
template<typename T1, typename T2>
reference | emplace_back (const T1 &value1, const T2 &value2)
template<typename T1, typename T2, typename T3>
reference | emplace_back (const T1 &value1, const T2 &value2, const T3 &value3)
template<typename T1, typename T2, typename T3, typename T4>
reference | emplace_back (const T1 &value1, const T2 &value2, const T3 &value3, const T4 &value4)
void | pop_back ()
| Removes the oldest item from the deque.
void | push_front (const_reference item)
reference | emplace_front ()
template<typename T1>
reference | emplace_front (const T1 &value1)
template<typename T1, typename T2>
reference | emplace_front (const T1 &value1, const T2 &value2)
template<typename T1, typename T2, typename T3>
reference | emplace_front (const T1 &value1, const T2 &value2, const T3 &value3)
template<typename T1, typename T2, typename T3, typename T4>
reference | emplace_front (const T1 &value1, const T2 &value2, const T3 &value3, const T4 &value4)
void | pop_front ()
| Removes the oldest item from the deque.
void | resize (size_t new_size, const value_type &value=value_type())
ideque & | operator= (const ideque &rhs)
| Assignment operator.
Public Member Functions inherited from etl::deque_base
size_type | size () const
bool | empty () const
bool | full () const
size_type | max_size () const
size_type | capacity () const
size_t | available () const

### Protected Member Functions

| ideque (pointer p_buffer_, size_t max_size_, size_t buffer_size_)
| Constructor.
void | initialise ()
| Initialise the deque.
void | repair_buffer (pointer p_buffer_)
| Fix the internal pointers after a low level memory copy.
| ~ideque ()
| Destructor.
Protected Member Functions inherited from etl::deque_base
| deque_base (size_t max_size_, size_t buffer_size_)
| Constructor.
| ~deque_base ()
| Destructor.

### Protected Attributes

iterator | _begin
iterator | _end
| Iterator to the _begin item in the deque.
pointer | p_buffer
| Iterator to the _end item in the deque.
Protected Attributes inherited from etl::deque_base
size_type | current_size
| The current number of elements in the deque.
const size_type | CAPACITY
| The maximum number of elements in the deque.
const size_type | Buffer_Size
| The number of elements in the buffer.
| ETL_DECLARE_DEBUG_COUNT
| Internal debugging.

### Friends

difference_type | operator- (const iterator &lhs, const iterator &rhs)
difference_type | operator- (const const_iterator &lhs, const const_iterator &rhs)

#### Member Function Documentation

## assign()

template<typename T>

void etl::ideque< T >::assign | ( | size_type | n,
|  | const value_type & | value )

inline

Assigns 'n' copies of a value to the deque. If asserts or exceptions are enabled, throws an etl::deque_full is 'n' is too large.

Parameters

  n | The number of copies to assign.
  value | The value to add.<

## at() [1/2]

template<typename T>

reference etl::ideque< T >::at | ( | size_t | index | ) |

inline

Gets a reference to the item at the index. If asserts or exceptions are enabled, throws an etl::deque_out_of_bounds if the index is out of range.

Returns
  A reference to the item at the index.

## at() [2/2]

template<typename T>

const_reference etl::ideque< T >::at | ( | size_t | index | ) | const

inline

Gets a const reference to the item at the index. If asserts or exceptions are enabled, throws an etl::deque_out_of_bounds if the index is out of range.

Returns
  A const reference to the item at the index.

## back() [1/2]

template<typename T>

reference etl::ideque< T >::back | ( |  | ) |

inline

Gets a reference to the item at the back of the deque. If asserts or exceptions are enabled, throws an etl::deque_empty if the deque is empty.

Returns
  A reference to the item at the back of the deque.

## back() [2/2]

template<typename T>

const_reference etl::ideque< T >::back | ( |  | ) | const

inline

Gets a const reference to the item at the back of the deque. If asserts or exceptions are enabled, throws an etl::deque_empty if the deque is empty.

Returns
  A const reference to the item at the back of the deque.

## emplace() [1/4]

template<typename T>
template<typename T1>

iterator etl::ideque< T >::emplace | ( | const_iterator | insert_position,
|  | const T1 & | value1 )

inline

Emplaces data into the deque. If asserts or exceptions are enabled, throws an etl::deque_full if the deque is full.

Parameters

  insert_position>The | insert position. Emplaces data into the deque. If asserts or exceptions are enabled, throws an etl::deque_full if the deque is full.
  insert_position>The | insert position.

## emplace() [2/4]

template<typename T>
template<typename T1, typename T2>

iterator etl::ideque< T >::emplace | ( | const_iterator | insert_position,
|  | const T1 & | value1,
|  | const T2 & | value2 )

inline

Emplaces data into the deque. If asserts or exceptions are enabled, throws an etl::deque_full if the deque is full.

Parameters

  insert_position>The | insert position.

## emplace() [3/4]

template<typename T>
template<typename T1, typename T2, typename T3>

iterator etl::ideque< T >::emplace | ( | const_iterator | insert_position,
|  | const T1 & | value1,
|  | const T2 & | value2,
|  | const T3 & | value3 )

inline

Emplaces data into the deque. If asserts or exceptions are enabled, throws an etl::deque_full if the deque is full.

Parameters

  insert_position>The | insert position.

## emplace() [4/4]

template<typename T>
template<typename T1, typename T2, typename T3, typename T4>

iterator etl::ideque< T >::emplace | ( | const_iterator | insert_position,
|  | const T1 & | value1,
|  | const T2 & | value2,
|  | const T3 & | value3,
|  | const T4 & | value4 )

inline

Emplaces data into the deque. If asserts or exceptions are enabled, throws an etl::deque_full if the deque is full.

Parameters

  insert_position>The | insert position.

## emplace_back() [1/5]

template<typename T>

reference etl::ideque< T >::emplace_back | ( |  | ) |

inline

Emplaces an item to the back of the deque. If asserts or exceptions are enabled, throws an etl::deque_full if the deque is already full.

## emplace_back() [2/5]

template<typename T>
template<typename T1>

reference etl::ideque< T >::emplace_back | ( | const T1 & | value1 | ) |

inline

Emplaces an item to the back of the deque. If asserts or exceptions are enabled, throws an etl::deque_full if the deque is already full.

## emplace_back() [3/5]

template<typename T>
template<typename T1, typename T2>

reference etl::ideque< T >::emplace_back | ( | const T1 & | value1,
|  | const T2 & | value2 )

inline

Emplaces an item to the back of the deque. If asserts or exceptions are enabled, throws an etl::deque_full if the deque is already full.

## emplace_back() [4/5]

template<typename T>
template<typename T1, typename T2, typename T3>

reference etl::ideque< T >::emplace_back | ( | const T1 & | value1,
|  | const T2 & | value2,
|  | const T3 & | value3 )

inline

Emplaces an item to the back of the deque. If asserts or exceptions are enabled, throws an etl::deque_full if the deque is already full.

## emplace_back() [5/5]

template<typename T>
template<typename T1, typename T2, typename T3, typename T4>

reference etl::ideque< T >::emplace_back | ( | const T1 & | value1,
|  | const T2 & | value2,
|  | const T3 & | value3,
|  | const T4 & | value4 )

inline

Emplaces an item to the back of the deque. If asserts or exceptions are enabled, throws an etl::deque_full if the deque is already full.

## emplace_front() [1/5]

template<typename T>

reference etl::ideque< T >::emplace_front | ( |  | ) |

inline

Emplaces an item to the front of the deque. If asserts or exceptions are enabled, throws an etl::deque_full if the deque is already full.

## emplace_front() [2/5]

template<typename T>
template<typename T1>

reference etl::ideque< T >::emplace_front | ( | const T1 & | value1 | ) |

inline

Emplaces an item to the front of the deque. If asserts or exceptions are enabled, throws an etl::deque_full if the deque is already full.

## emplace_front() [3/5]

template<typename T>
template<typename T1, typename T2>

reference etl::ideque< T >::emplace_front | ( | const T1 & | value1,
|  | const T2 & | value2 )

inline

Emplaces an item to the front of the deque. If asserts or exceptions are enabled, throws an etl::deque_full if the deque is already full.

## emplace_front() [4/5]

template<typename T>
template<typename T1, typename T2, typename T3>

reference etl::ideque< T >::emplace_front | ( | const T1 & | value1,
|  | const T2 & | value2,
|  | const T3 & | value3 )

inline

Emplaces an item to the front of the deque. If asserts or exceptions are enabled, throws an etl::deque_full if the deque is already full.

## emplace_front() [5/5]

template<typename T>
template<typename T1, typename T2, typename T3, typename T4>

reference etl::ideque< T >::emplace_front | ( | const T1 & | value1,
|  | const T2 & | value2,
|  | const T3 & | value3,
|  | const T4 & | value4 )

inline

Emplaces an item to the front of the deque. If asserts or exceptions are enabled, throws an etl::deque_full if the deque is already full.

## erase() [1/2]

template<typename T>

iterator etl::ideque< T >::erase | ( | const_iterator | erase_position | ) |

inline

Erase an item. If asserts or exceptions are enabled, throws an etl::deque_out_of_bounds if the position is out of range.

Parameters

  erase_position | The position to erase.

## erase() [2/2]

template<typename T>

iterator etl::ideque< T >::erase | ( | const_iterator | range_begin,
|  | const_iterator | range_end )

inline

erase a range. If asserts or exceptions are enabled, throws an etl::deque_out_of_bounds if the iterators are out of range.

Parameters

  range_begin | The beginning of the range to erase.
  range_end | The end of the range to erase.

## front() [1/2]

template<typename T>

reference etl::ideque< T >::front | ( |  | ) |

inline

Gets a reference to the item at the front of the deque. If asserts or exceptions are enabled, throws an etl::deque_empty if the deque is empty.

Returns
  A reference to the item at the front of the deque.

## front() [2/2]

template<typename T>

const_reference etl::ideque< T >::front | ( |  | ) | const

inline

Gets a const reference to the item at the front of the deque. If asserts or exceptions are enabled, throws an etl::deque_empty if the deque is empty.

Returns
  A const reference to the item at the front of the deque.

## insert() [1/3]

template<typename T>

iterator etl::ideque< T >::insert | ( | const_iterator | insert_position,
|  | const value_type & | value )

inline

Inserts data into the deque. If asserts or exceptions are enabled, throws an etl::deque_full if the deque is full.

Parameters

  insert_position>The | insert position.
  value>The | value to insert.

## insert() [2/3]

template<typename T>

iterator etl::ideque< T >::insert | ( | const_iterator | insert_position,
|  | size_type | n,
|  | const value_type & | value )

inline

Inserts 'n' copies of a value into the deque. If asserts or exceptions are enabled, throws an etl::deque_full if the deque is full.

Parameters

  insert_position | The insert position.
  n | The number of values to insert.
  value | The value to insert.

## insert() [3/3]

template<typename T>
template<typename TIterator>

enable_if<!etl::is_integral< TIterator >::value, iterator >::type etl::ideque< T >::insert | ( | const_iterator | insert_position,
|  | TIterator | range_begin,
|  | TIterator | range_end )

inline

Inserts a range into the deque. If asserts or exceptions are enabled, throws an etl::deque_empty if the deque is full.

Parameters

  insert_position>The | insert position.
  range_begin | The beginning of the range to insert.
  range_end | The end of the range to insert.

## operator[]() [1/2]

template<typename T>

reference etl::ideque< T >::operator[] | ( | size_t | index | ) |

inline

Gets a reference to the item at the index.

Returns
  A reference to the item at the index.

## operator[]() [2/2]

template<typename T>

const_reference etl::ideque< T >::operator[] | ( | size_t | index | ) | const

inline

Gets a const reference to the item at the index.

Returns
  A const reference to the item at the index.

## push_back()

template<typename T>

void etl::ideque< T >::push_back | ( | const_reference | item | ) |

inline

Adds an item to the back of the deque. If asserts or exceptions are enabled, throws an etl::deque_full if the deque is already full.

Parameters

  item | The item to push to the deque.

## push_front()

template<typename T>

void etl::ideque< T >::push_front | ( | const_reference | item | ) |

inline

Adds an item to the front of the deque. If asserts or exceptions are enabled, throws an etl::deque_full if the deque is already full.

Parameters

  item | The item to push to the deque.

## resize()

template<typename T>

void etl::ideque< T >::resize | ( | size_t | new_size,
|  | const value_type & | value = value_type() )

inline

Resizes the deque. If asserts or exceptions are enabled, throws an etl::deque_full is 'new_size' is too large.

Parameters

  new_size | The new size of the deque.
  value | The value to assign if the new size is larger. Default = Default constructed value.

#### Friends And Related Symbol Documentation

## operator- [1/2]

template<typename T>

difference_type operator- | ( | const const_iterator & | lhs,
|  | const const_iterator & | rhs )

friend

- operator for const_iterator

## operator- [2/2]

template<typename T>

difference_type operator- | ( | const iterator & | lhs,
|  | const iterator & | rhs )

friend

- operator for iterator

## etl::deque

class etl::deque

template<typename T, const size_t MAX_SIZE_>
class etl::deque< T, MAX_SIZE_ >

A fixed capacity double ended queue.

Note
  The deque allocates one more element than the specified maximum size.

Template Parameters

  T | The type of items this deque holds.
  MAX_SIZE_ | The capacity of the deque

### Public Types

typedef T | value_type
typedef T * | pointer
typedef const T * | const_pointer
typedef T & | reference
typedef const T & | const_reference
typedef size_t | size_type
typedef etl::iterator_traits< pointer >::difference_type | difference_type
Public Types inherited from etl::ideque< T >
typedef T | value_type
typedef size_t | size_type
typedef T & | reference
typedef const T & | const_reference
typedef T * | pointer
typedef const T * | const_pointer
typedef etl::iterator_traits< pointer >::difference_type | difference_type
typedef ETL_OR_STD::reverse_iterator< iterator > | reverse_iterator
typedef ETL_OR_STD::reverse_iterator< const_iterator > | const_reverse_iterator
Public Types inherited from etl::deque_base
typedef size_t | size_type

### Public Member Functions

| deque ()
| Default constructor.
| ~deque ()
| Destructor.
| deque (const deque &other)
| Copy constructor.
template<typename TIterator>
| deque (TIterator begin_, TIterator end_, typename etl::enable_if<!etl::is_integral< TIterator >::value, int >::type=0)
| Assigns data to the deque.
| deque (size_t n, const_reference value=value_type())
| Assigns data to the deque.
deque & | operator= (const deque &rhs)
| Assignment operator.
void | repair ()
| Fix the internal pointers after a low level memory copy.
Public Member Functions inherited from etl::ideque< T >
template<typename TIterator>
etl::enable_if<!etl::is_integral< TIterator >::value, void >::type | assign (TIterator range_begin, TIterator range_end)
| Assigns a range to the deque.
void | assign (size_type n, const value_type &value)
reference | at (size_t index)
const_reference | at (size_t index) const
reference | operator[] (size_t index)
const_reference | operator[] (size_t index) const
reference | front ()
const_reference | front () const
reference | back ()
const_reference | back () const
iterator | begin ()
| Gets an iterator to the beginning of the deque.
const_iterator | begin () const
| Gets a const iterator to the beginning of the deque.
const_iterator | cbegin () const
| Gets a const iterator to the beginning of the deque.
iterator | end ()
| Gets an iterator to the end of the deque.
const_iterator | end () const
| Gets a const iterator to the end of the deque.
const_iterator | cend () const
| Gets a const iterator to the end of the deque.
reverse_iterator | rbegin ()
| Gets a reverse iterator to the end of the deque.
const_reverse_iterator | rbegin () const
| Gets a const reverse iterator to the end of the deque.
const_reverse_iterator | crbegin () const
| Gets a const reverse iterator to the end of the deque.
reverse_iterator | rend ()
| Gets a reverse iterator to the beginning of the deque.
const_reverse_iterator | rend () const
| Gets a const reverse iterator to the beginning of the deque.
const_reverse_iterator | crend () const
| Gets a const reverse iterator to the beginning of the deque.
void | clear ()
| Clears the deque.
void | fill (const T &value)
| Fills the deque.
iterator | insert (const_iterator insert_position, const value_type &value)
template<typename T1>
iterator | emplace (const_iterator insert_position, const T1 &value1)
template<typename T1, typename T2>
iterator | emplace (const_iterator insert_position, const T1 &value1, const T2 &value2)
template<typename T1, typename T2, typename T3>
iterator | emplace (const_iterator insert_position, const T1 &value1, const T2 &value2, const T3 &value3)
template<typename T1, typename T2, typename T3, typename T4>
iterator | emplace (const_iterator insert_position, const T1 &value1, const T2 &value2, const T3 &value3, const T4 &value4)
iterator | insert (const_iterator insert_position, size_type n, const value_type &value)
template<typename TIterator>
enable_if<!etl::is_integral< TIterator >::value, iterator >::type | insert (const_iterator insert_position, TIterator range_begin, TIterator range_end)
iterator | erase (const_iterator erase_position)
iterator | erase (const_iterator range_begin, const_iterator range_end)
void | push_back (const_reference item)
reference | emplace_back ()
template<typename T1>
reference | emplace_back (const T1 &value1)
template<typename T1, typename T2>
reference | emplace_back (const T1 &value1, const T2 &value2)
template<typename T1, typename T2, typename T3>
reference | emplace_back (const T1 &value1, const T2 &value2, const T3 &value3)
template<typename T1, typename T2, typename T3, typename T4>
reference | emplace_back (const T1 &value1, const T2 &value2, const T3 &value3, const T4 &value4)
void | pop_back ()
| Removes the oldest item from the deque.
void | push_front (const_reference item)
reference | emplace_front ()
template<typename T1>
reference | emplace_front (const T1 &value1)
template<typename T1, typename T2>
reference | emplace_front (const T1 &value1, const T2 &value2)
template<typename T1, typename T2, typename T3>
reference | emplace_front (const T1 &value1, const T2 &value2, const T3 &value3)
template<typename T1, typename T2, typename T3, typename T4>
reference | emplace_front (const T1 &value1, const T2 &value2, const T3 &value3, const T4 &value4)
void | pop_front ()
| Removes the oldest item from the deque.
void | resize (size_t new_size, const value_type &value=value_type())
ideque & | operator= (const ideque &rhs)
| Assignment operator.
Public Member Functions inherited from etl::deque_base
size_type | size () const
bool | empty () const
bool | full () const
size_type | max_size () const
size_type | capacity () const
size_t | available () const

### Static Public Attributes

static ETL_CONSTANT size_t | MAX_SIZE = MAX_SIZE_

## Additional Inherited Members

Protected Member Functions inherited from etl::ideque< T >
| ideque (pointer p_buffer_, size_t max_size_, size_t buffer_size_)
| Constructor.
void | initialise ()
| Initialise the deque.
void | repair_buffer (pointer p_buffer_)
| Fix the internal pointers after a low level memory copy.
| ~ideque ()
| Destructor.
Protected Member Functions inherited from etl::deque_base
| deque_base (size_t max_size_, size_t buffer_size_)
| Constructor.
| ~deque_base ()
| Destructor.
Protected Attributes inherited from etl::ideque< T >
iterator | _begin
iterator | _end
| Iterator to the _begin item in the deque.
pointer | p_buffer
| Iterator to the _end item in the deque.
Protected Attributes inherited from etl::deque_base
size_type | current_size
| The current number of elements in the deque.
const size_type | CAPACITY
| The maximum number of elements in the deque.
const size_type | Buffer_Size
| The number of elements in the buffer.
| ETL_DECLARE_DEBUG_COUNT
| Internal debugging.

## Function Documentation

## operator!=()

template<typename T>

bool etl::operator!= | ( | const etl::ideque< T > & | lhs,
|  | const etl::ideque< T > & | rhs )

Not equal operator.

Parameters

  lhs | Reference to the _begin deque.
  rhs | Reference to the second deque.

Returns
  true if the arrays are not equal, otherwise false

## operator<()

template<typename T>

bool etl::operator< | ( | const etl::ideque< T > & | lhs,
|  | const etl::ideque< T > & | rhs )

Less than operator.

Parameters

  lhs | Reference to the _begin deque.
  rhs | Reference to the second deque.

Returns
  true if the _begin deque is lexicographically less than the second, otherwise false

## operator<=()

template<typename T>

bool etl::operator<= | ( | const etl::ideque< T > & | lhs,
|  | const etl::ideque< T > & | rhs )

Less than or equal operator.

Parameters

  lhs | Reference to the _begin deque.
  rhs | Reference to the second deque.

Returns
  true if the _begin deque is lexicographically less than or equal to the second, otherwise b>false

## operator==()

template<typename T>

bool etl::operator== | ( | const etl::ideque< T > & | lhs,
|  | const etl::ideque< T > & | rhs )

Template deduction guides.

Make Equal operator.

Parameters

  lhs | Reference to the _begin deque.
  rhs | Reference to the second deque.

Returns
  true if the arrays are equal, otherwise false

## operator>()

template<typename T>

bool etl::operator> | ( | const etl::ideque< T > & | lhs,
|  | const etl::ideque< T > & | rhs )

Greater than operator.

Parameters

  lhs | Reference to the _begin deque.
  rhs | Reference to the second deque.

Returns
  true if the _begin deque is lexicographically greater than the second, otherwise false

## operator>=()

template<typename T>

bool etl::operator>= | ( | const etl::ideque< T > & | lhs,
|  | const etl::ideque< T > & | rhs )

Greater than or equal operator.

Parameters

  "lhs | Reference to the _begin deque.
  "rhs | Reference to the second deque.

Returns
  true if the _begin deque is lexicographically greater than or equal to the second, otherwise b>false