Embedded Template Library 1.0
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. More...
 
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_CONSTEXPR exception (string_type reason_, string_type, numeric_type line_)
 Constructor.
 
ETL_CONSTEXPR string_type what () const
 
ETL_CONSTEXPR string_type file_name () const
 
ETL_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_CONSTEXPR exception (string_type reason_, string_type, numeric_type line_)
 Constructor.
 
ETL_CONSTEXPR string_type what () const
 
ETL_CONSTEXPR string_type file_name () const
 
ETL_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_CONSTEXPR exception (string_type reason_, string_type, numeric_type line_)
 Constructor.
 
ETL_CONSTEXPR string_type what () const
 
ETL_CONSTEXPR string_type file_name () const
 
ETL_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_CONSTEXPR exception (string_type reason_, string_type, numeric_type line_)
 Constructor.
 
ETL_CONSTEXPR string_type what () const
 
ETL_CONSTEXPR string_type file_name () const
 
ETL_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.
 

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
TThe 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< iteratorreverse_iterator
 
typedef ETL_OR_STD::reverse_iterator< const_iteratorconst_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)
 
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)
 
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())
 
idequeoperator= (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.
 

Friends

difference_type operator- (const iterator &lhs, const iterator &rhs)
 
difference_type operator- (const const_iterator &lhs, const const_iterator &rhs)
 
difference_type operator- (const reverse_iterator &lhs, const reverse_iterator &rhs)
 
difference_type operator- (const const_reverse_iterator &lhs, const const_reverse_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
nThe number of copies to assign.
valueThe 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.

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.

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>Theinsert position. Emplaces data into the deque. If asserts or exceptions are enabled, throws an etl::deque_full if the deque is full.
insert_position>Theinsert 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>Theinsert 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>Theinsert 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>Theinsert position.

◆ emplace_back() [1/4]

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() [2/4]

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() [3/4]

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() [4/4]

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/4]

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() [2/4]

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() [3/4]

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() [4/4]

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_positionThe 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_beginThe beginning of the range to erase.
range_endThe 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.

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.

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>Theinsert position.
value>Thevalue 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_positionThe insert position.
nThe number of values to insert.
valueThe 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>Theinsert position.
range_beginThe beginning of the range to insert.
range_endThe 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
itemThe 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
itemThe 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_sizeThe new size of the deque.
valueThe value to assign if the new size is larger. Default = Default constructed value.

Friends And Related Function Documentation

◆ operator- [1/4]

template<typename T >
difference_type operator- ( const const_iterator lhs,
const const_iterator rhs 
)
friend

◆ operator- [2/4]

template<typename T >
difference_type operator- ( const const_reverse_iterator &  lhs,
const const_reverse_iterator &  rhs 
)
friend
  • operator for const_reverse_iterator

◆ operator- [3/4]

template<typename T >
difference_type operator- ( const iterator lhs,
const iterator rhs 
)
friend
  • operator for iterator

◆ operator- [4/4]

template<typename T >
difference_type operator- ( const reverse_iterator &  lhs,
const reverse_iterator &  rhs 
)
friend

◆ 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
TThe 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< iteratorreverse_iterator
 
typedef ETL_OR_STD::reverse_iterator< const_iteratorconst_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.
 
dequeoperator= (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)
 
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)
 
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())
 
idequeoperator= (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.
 

Function Documentation

◆ operator!=()

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

Not equal operator.

Parameters
lhsReference to the _begin deque.
rhsReference 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
lhsReference to the _begin deque.
rhsReference 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
lhsReference to the _begin deque.
rhsReference to the second deque.
Returns
true if the _begin deque is lexicographically less than or equal to the second, otherwise 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
lhsReference to the _begin deque.
rhsReference 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
lhsReference to the _begin deque.
rhsReference 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
"lhsReference to the _begin deque.
"rhsReference to the second deque.
Returns
true if the _begin deque is lexicographically greater than or equal to the second, otherwise false