Embedded Template Library 1.0
indirect_vector

Classes

class  etl::iindirect_vector< T >
 
class  etl::indirect_vector< T, MAX_SIZE_ >
 
class  etl::indirect_vector_ext< T >
 Template deduction guides. More...
 

Functions

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

Detailed Description

A indirect_vector with the capacity defined at compile time. Objects are allocated from a pool and stored as pointers.


Class Documentation

◆ etl::iindirect_vector

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

The base class for specifically sized vectors. Can be used as a reference type for all vectors containing a specific type.

Public Types

typedef T value_type
 
typedef T & reference
 
typedef const T & const_reference
 
typedef T * pointer
 
typedef const T * const_pointer
 
typedef etl::ivector< T * >::iterator indirect_iterator
 
typedef etl::ivector< T * >::const_iterator indirect_const_iterator
 
typedef etl::ivector< T * >::size_type size_type
 
typedef etl::ivector< T * >::difference_type difference_type
 
typedef ETL_OR_STD::reverse_iterator< iteratorreverse_iterator
 
typedef ETL_OR_STD::reverse_iterator< const_iteratorconst_reverse_iterator
 

Public Member Functions

iterator begin ()
 
const_iterator begin () const
 
iterator end ()
 
const_iterator end () const
 
const_iterator cbegin () const
 
const_iterator cend () const
 
reverse_iterator rbegin ()
 
const_reverse_iterator rbegin () const
 
reverse_iterator rend ()
 
const_reverse_iterator rend () const
 
const_reverse_iterator crbegin () const
 
const_reverse_iterator crend () const
 
void resize (size_t new_size)
 
void resize (size_t new_size, const_reference value)
 
void reserve (size_t)
 
reference operator[] (size_t i)
 
const_reference operator[] (size_t i) const
 
reference at (size_t i)
 
const_reference at (size_t i) const
 
reference front ()
 
const_reference front () const
 
reference back ()
 
const_reference back () const
 
template<typename TIterator >
void assign (TIterator first, TIterator last)
 
void assign (size_t n, parameter_t value)
 
void clear ()
 Clears the indirect_vector.
 
void fill (const T &value)
 Fills the buffer.
 
void push_back (const_reference value)
 
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 an element from the end of the indirect_vector.
 
iterator insert (const_iterator position, const_reference value)
 
template<typename T1 >
iterator emplace (iterator position, const T1 &value1)
 Emplaces a value to the vector at the specified position.
 
template<typename T1 , typename T2 >
iterator emplace (iterator position, const T1 &value1, const T2 &value2)
 
template<typename T1 , typename T2 , typename T3 >
iterator emplace (iterator position, const T1 &value1, const T2 &value2, const T3 &value3)
 
template<typename T1 , typename T2 , typename T3 , typename T4 >
iterator emplace (iterator position, const T1 &value1, const T2 &value2, const T3 &value3, const T4 &value4)
 
iterator insert (const_iterator position, size_t n, parameter_t value)
 
template<class TIterator >
iterator insert (const_iterator position, TIterator first, TIterator last)
 
iterator erase (iterator i_element)
 
iterator erase (const_iterator i_element)
 
iterator erase (const_iterator first, const_iterator last)
 
iindirect_vectoroperator= (const iindirect_vector &rhs)
 Assignment operator.
 
size_type size () const
 
size_type capacity () const
 
bool empty () const
 
bool full () const
 
size_type max_size () const
 
size_type available () const
 

Protected Types

typedef etl::parameter_type< T >::type parameter_t
 

Protected Member Functions

 iindirect_vector (etl::ivector< T * > &lookup_, etl::ipool &storage_)
 Constructor.
 
void initialise ()
 Initialise the indirect_vector.
 
 ~iindirect_vector ()
 Destructor.
 
iterator to_iterator (const_iterator itr) const
 Convert from const_iterator to iterator.
 

Protected Attributes

etl::ivector< T * > & lookup
 
etl::ipoolstorage
 

Member Function Documentation

◆ assign() [1/2]

template<typename T >
void etl::iindirect_vector< T >::assign ( size_t  n,
parameter_t  value 
)
inline

Assigns values to the indirect_vector. If asserts or exceptions are enabled, emits vector_full if the indirect_vector does not have enough free space.

Parameters
nThe number of elements to add.
valueThe value to insert for each element.

◆ assign() [2/2]

template<typename T >
template<typename TIterator >
void etl::iindirect_vector< T >::assign ( TIterator  first,
TIterator  last 
)
inline

Assigns values to the indirect_vector. If asserts or exceptions are enabled, emits vector_full if the indirect_vector does not have enough free space. If asserts or exceptions are enabled, emits vector_iterator if the iterators are reversed.

Parameters
firstThe iterator to the first element.
lastThe iterator to the last element + 1.

◆ at() [1/2]

template<typename T >
reference etl::iindirect_vector< T >::at ( size_t  i)
inline

Returns a reference to the value at index 'i' If asserts or exceptions are enabled, emits an etl::vector_out_of_bounds if the index is out of range.

Parameters
iThe index.
Returns
A reference to the value at index 'i'

◆ at() [2/2]

template<typename T >
const_reference etl::iindirect_vector< T >::at ( size_t  i) const
inline

Returns a const reference to the value at index 'i' If asserts or exceptions are enabled, emits an etl::vector_out_of_bounds if the index is out of range.

Parameters
iThe index.
Returns
A const reference to the value at index 'i'

◆ available()

template<typename T >
size_type etl::iindirect_vector< T >::available ( ) const
inline

Returns the remaining capacity.

Returns
The remaining capacity.

◆ back() [1/2]

template<typename T >
reference etl::iindirect_vector< T >::back ( )
inline

Returns a reference to the last element.

Returns
A reference to the last element.

◆ back() [2/2]

template<typename T >
const_reference etl::iindirect_vector< T >::back ( ) const
inline

Returns a const reference to the last element.

Returns
A const reference to the last element.

◆ begin() [1/2]

template<typename T >
iterator etl::iindirect_vector< T >::begin ( )
inline

Returns an iterator to the beginning of the indirect_vector.

Returns
An iterator to the beginning of the indirect_vector.

◆ begin() [2/2]

template<typename T >
const_iterator etl::iindirect_vector< T >::begin ( ) const
inline

Returns a const_iterator to the beginning of the indirect_vector.

Returns
A const iterator to the beginning of the indirect_vector.

◆ capacity()

template<typename T >
size_type etl::iindirect_vector< T >::capacity ( ) const
inline

Gets the current capacity of the indirect_vector.

Returns
The capacity of the indirect_vector.

◆ cbegin()

template<typename T >
const_iterator etl::iindirect_vector< T >::cbegin ( ) const
inline

Returns a const_iterator to the beginning of the indirect_vector.

Returns
A const iterator to the beginning of the indirect_vector.

◆ cend()

template<typename T >
const_iterator etl::iindirect_vector< T >::cend ( ) const
inline

Returns a const_iterator to the end of the indirect_vector.

Returns
A const iterator to the end of the indirect_vector.

◆ crbegin()

template<typename T >
const_reverse_iterator etl::iindirect_vector< T >::crbegin ( ) const
inline

Returns a const reverse iterator to the reverse beginning of the indirect_vector.

Returns
Const reverse iterator to the reverse beginning of the indirect_vector.

◆ crend()

template<typename T >
const_reverse_iterator etl::iindirect_vector< T >::crend ( ) const
inline

Returns a const reverse iterator to the end + 1 of the indirect_vector.

Returns
Const reverse iterator to the end + 1 of the indirect_vector.

◆ emplace_back() [1/4]

template<typename T >
template<typename T1 >
reference etl::iindirect_vector< T >::emplace_back ( const T1 &  value1)
inline

Constructs a value at the end of the indirect_vector. If asserts or exceptions are enabled, emits vector_full if the indirect_vector is already full.

Parameters
valueThe value to add.

◆ emplace_back() [2/4]

template<typename T >
template<typename T1 , typename T2 >
reference etl::iindirect_vector< T >::emplace_back ( const T1 &  value1,
const T2 &  value2 
)
inline

Constructs a value at the end of the indirect_vector. If asserts or exceptions are enabled, emits vector_full if the indirect_vector is already full.

Parameters
valueThe value to add.

◆ emplace_back() [3/4]

template<typename T >
template<typename T1 , typename T2 , typename T3 >
reference etl::iindirect_vector< T >::emplace_back ( const T1 &  value1,
const T2 &  value2,
const T3 &  value3 
)
inline

Constructs a value at the end of the indirect_vector. If asserts or exceptions are enabled, emits vector_full if the indirect_vector is already full.

Parameters
valueThe value to add.

◆ emplace_back() [4/4]

template<typename T >
template<typename T1 , typename T2 , typename T3 , typename T4 >
reference etl::iindirect_vector< T >::emplace_back ( const T1 &  value1,
const T2 &  value2,
const T3 &  value3,
const T4 &  value4 
)
inline

Constructs a value at the end of the indirect_vector. If asserts or exceptions are enabled, emits vector_full if the indirect_vector is already full.

Parameters
valueThe value to add.

◆ empty()

template<typename T >
bool etl::iindirect_vector< T >::empty ( ) const
inline

Checks the 'empty' state of the indirect_vector.

Returns
true if empty.

◆ end() [1/2]

template<typename T >
iterator etl::iindirect_vector< T >::end ( )
inline

Returns an iterator to the end of the indirect_vector.

Returns
An iterator to the end of the indirect_vector.

◆ end() [2/2]

template<typename T >
const_iterator etl::iindirect_vector< T >::end ( ) const
inline

Returns a const_iterator to the end of the indirect_vector.

Returns
A const iterator to the end of the indirect_vector.

◆ erase() [1/3]

template<typename T >
iterator etl::iindirect_vector< T >::erase ( const_iterator  first,
const_iterator  last 
)
inline

Erases a range of elements. The range includes all the elements between first and last, including the element pointed by first, but not the one pointed by last.

Parameters
firstIterator to the first element.
lastIterator to the last element.
Returns
An iterator pointing to the element that followed the erased element.

◆ erase() [2/3]

template<typename T >
iterator etl::iindirect_vector< T >::erase ( const_iterator  i_element)
inline

Erases an element.

Parameters
i_elementIterator to the element.
Returns
An iterator pointing to the element that followed the erased element.

◆ erase() [3/3]

template<typename T >
iterator etl::iindirect_vector< T >::erase ( iterator  i_element)
inline

Erases an element.

Parameters
i_elementIterator to the element.
Returns
An iterator pointing to the element that followed the erased element.

◆ front() [1/2]

template<typename T >
reference etl::iindirect_vector< T >::front ( )
inline

Returns a reference to the first element.

Returns
A reference to the first element.

◆ front() [2/2]

template<typename T >
const_reference etl::iindirect_vector< T >::front ( ) const
inline

Returns a const reference to the first element.

Returns
A const reference to the first element.

◆ full()

template<typename T >
bool etl::iindirect_vector< T >::full ( ) const
inline

Checks the 'full' state of the indirect_vector.

Returns
true if full.

◆ insert() [1/3]

template<typename T >
iterator etl::iindirect_vector< T >::insert ( const_iterator  position,
const_reference  value 
)
inline

Inserts a value to the indirect_vector. If asserts or exceptions are enabled, emits vector_full if the indirect_vector is already full.

Parameters
positionThe position to insert before.
valueThe value to insert.

◆ insert() [2/3]

template<typename T >
iterator etl::iindirect_vector< T >::insert ( const_iterator  position,
size_t  n,
parameter_t  value 
)
inline

Inserts 'n' values to the indirect_vector. If asserts or exceptions are enabled, emits vector_full if the indirect_vector does not have enough free space.

Parameters
positionThe position to insert before.
nThe number of elements to add.
valueThe value to insert.

◆ insert() [3/3]

template<typename T >
template<class TIterator >
iterator etl::iindirect_vector< T >::insert ( const_iterator  position,
TIterator  first,
TIterator  last 
)
inline

Inserts a range of values to the indirect_vector. If asserts or exceptions are enabled, emits vector_full if the indirect_vector does not have enough free space.

Parameters
positionThe position to insert before.
firstThe first element to add.
lastThe last + 1 element to add.

◆ max_size()

template<typename T >
size_type etl::iindirect_vector< T >::max_size ( ) const
inline

Returns the maximum size.

Returns
The maximum size.

◆ operator[]() [1/2]

template<typename T >
reference etl::iindirect_vector< T >::operator[] ( size_t  i)
inline

Returns a reference to the value at index 'i'

Parameters
iThe index.
Returns
A reference to the value at index 'i'

◆ operator[]() [2/2]

template<typename T >
const_reference etl::iindirect_vector< T >::operator[] ( size_t  i) const
inline

Returns a const reference to the value at index 'i'

Parameters
iThe index.
Returns
A const reference to the value at index 'i'

◆ push_back()

template<typename T >
void etl::iindirect_vector< T >::push_back ( const_reference  value)
inline

Inserts a value at the end of the indirect_vector. If asserts or exceptions are enabled, emits vector_full if the indirect_vector is already full.

Parameters
valueThe value to add.

◆ rbegin() [1/2]

template<typename T >
reverse_iterator etl::iindirect_vector< T >::rbegin ( )
inline

Returns an reverse iterator to the reverse beginning of the indirect_vector.

Returns
Iterator to the reverse beginning of the indirect_vector.

◆ rbegin() [2/2]

template<typename T >
const_reverse_iterator etl::iindirect_vector< T >::rbegin ( ) const
inline

Returns a const reverse iterator to the reverse beginning of the indirect_vector.

Returns
Const iterator to the reverse beginning of the indirect_vector.

◆ rend() [1/2]

template<typename T >
reverse_iterator etl::iindirect_vector< T >::rend ( )
inline

Returns a reverse iterator to the end + 1 of the indirect_vector.

Returns
Reverse iterator to the end + 1 of the indirect_vector.

◆ rend() [2/2]

template<typename T >
const_reverse_iterator etl::iindirect_vector< T >::rend ( ) const
inline

Returns a const reverse iterator to the end + 1 of the indirect_vector.

Returns
Const reverse iterator to the end + 1 of the indirect_vector.

◆ reserve()

template<typename T >
void etl::iindirect_vector< T >::reserve ( size_t  )
inline

Does nothing. For compatibility with the STL vector API.

◆ resize() [1/2]

template<typename T >
void etl::iindirect_vector< T >::resize ( size_t  new_size)
inline

Resizes the indirect_vector. If asserts or exceptions are enabled and the new size is larger than the maximum then a vector_full is thrown.

Parameters
new_sizeThe new size.

◆ resize() [2/2]

template<typename T >
void etl::iindirect_vector< T >::resize ( size_t  new_size,
const_reference  value 
)
inline

Resizes the indirect_vector. If asserts or exceptions are enabled and the new size is larger than the maximum then a vector_full is thrown.

Parameters
new_sizeThe new size.
valueThe value to fill new elements with. Default = default constructed value.

◆ size()

template<typename T >
size_type etl::iindirect_vector< T >::size ( ) const
inline

Gets the current size of the indirect_vector.

Returns
The current size of the indirect_vector.

◆ etl::indirect_vector

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

A indirect_vector implementation that uses a fixed size buffer.

Template Parameters
TThe element type.
MAX_SIZE_The maximum number of elements that can be stored.

Public Member Functions

 ETL_STATIC_ASSERT ((MAX_SIZE_ > 0U), "Zero capacity etl::indirect_vector is not valid")
 
 indirect_vector ()
 Constructor.
 
 indirect_vector (size_t initial_size)
 
 indirect_vector (size_t initial_size, typename etl::iindirect_vector< T >::parameter_t value)
 
template<typename TIterator >
 indirect_vector (TIterator first, TIterator last)
 
 indirect_vector (const indirect_vector &other)
 Copy constructor.
 
indirect_vectoroperator= (const indirect_vector &rhs)
 Assignment operator.
 
 ~indirect_vector ()
 Destructor.
 
- Public Member Functions inherited from etl::iindirect_vector< T >
iterator begin ()
 
const_iterator begin () const
 
iterator end ()
 
const_iterator end () const
 
const_iterator cbegin () const
 
const_iterator cend () const
 
reverse_iterator rbegin ()
 
const_reverse_iterator rbegin () const
 
reverse_iterator rend ()
 
const_reverse_iterator rend () const
 
const_reverse_iterator crbegin () const
 
const_reverse_iterator crend () const
 
void resize (size_t new_size)
 
void resize (size_t new_size, const_reference value)
 
void reserve (size_t)
 
reference operator[] (size_t i)
 
const_reference operator[] (size_t i) const
 
reference at (size_t i)
 
const_reference at (size_t i) const
 
reference front ()
 
const_reference front () const
 
reference back ()
 
const_reference back () const
 
template<typename TIterator >
void assign (TIterator first, TIterator last)
 
void assign (size_t n, parameter_t value)
 
void clear ()
 Clears the indirect_vector.
 
void fill (const T &value)
 Fills the buffer.
 
void push_back (const_reference value)
 
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 an element from the end of the indirect_vector.
 
iterator insert (const_iterator position, const_reference value)
 
template<typename T1 >
iterator emplace (iterator position, const T1 &value1)
 Emplaces a value to the vector at the specified position.
 
template<typename T1 , typename T2 >
iterator emplace (iterator position, const T1 &value1, const T2 &value2)
 
template<typename T1 , typename T2 , typename T3 >
iterator emplace (iterator position, const T1 &value1, const T2 &value2, const T3 &value3)
 
template<typename T1 , typename T2 , typename T3 , typename T4 >
iterator emplace (iterator position, const T1 &value1, const T2 &value2, const T3 &value3, const T4 &value4)
 
iterator insert (const_iterator position, size_t n, parameter_t value)
 
template<class TIterator >
iterator insert (const_iterator position, TIterator first, TIterator last)
 
iterator erase (iterator i_element)
 
iterator erase (const_iterator i_element)
 
iterator erase (const_iterator first, const_iterator last)
 
iindirect_vectoroperator= (const iindirect_vector &rhs)
 Assignment operator.
 
size_type size () const
 
size_type capacity () const
 
bool empty () const
 
bool full () const
 
size_type max_size () const
 
size_type available () const
 

Static Public Attributes

static ETL_CONSTANT size_t MAX_SIZE = MAX_SIZE_
 

Additional Inherited Members

- Public Types inherited from etl::iindirect_vector< T >
typedef T value_type
 
typedef T & reference
 
typedef const T & const_reference
 
typedef T * pointer
 
typedef const T * const_pointer
 
typedef etl::ivector< T * >::iterator indirect_iterator
 
typedef etl::ivector< T * >::const_iterator indirect_const_iterator
 
typedef etl::ivector< T * >::size_type size_type
 
typedef etl::ivector< T * >::difference_type difference_type
 
typedef ETL_OR_STD::reverse_iterator< iteratorreverse_iterator
 
typedef ETL_OR_STD::reverse_iterator< const_iteratorconst_reverse_iterator
 
- Protected Types inherited from etl::iindirect_vector< T >
typedef etl::parameter_type< T >::type parameter_t
 
- Protected Member Functions inherited from etl::iindirect_vector< T >
 iindirect_vector (etl::ivector< T * > &lookup_, etl::ipool &storage_)
 Constructor.
 
void initialise ()
 Initialise the indirect_vector.
 
 ~iindirect_vector ()
 Destructor.
 
iterator to_iterator (const_iterator itr) const
 Convert from const_iterator to iterator.
 
- Protected Attributes inherited from etl::iindirect_vector< T >
etl::ivector< T * > & lookup
 
etl::ipoolstorage
 

Constructor & Destructor Documentation

◆ indirect_vector() [1/3]

template<typename T , const size_t MAX_SIZE_>
etl::indirect_vector< T, MAX_SIZE_ >::indirect_vector ( size_t  initial_size)
inlineexplicit

Constructor, with size.

Parameters
initial_sizeThe initial size of the indirect_vector.

◆ indirect_vector() [2/3]

template<typename T , const size_t MAX_SIZE_>
etl::indirect_vector< T, MAX_SIZE_ >::indirect_vector ( size_t  initial_size,
typename etl::iindirect_vector< T >::parameter_t  value 
)
inline

Constructor, from initial size and value.

Parameters
initial_sizeThe initial size of the indirect_vector.
valueThe value to fill the indirect_vector with.

◆ indirect_vector() [3/3]

template<typename T , const size_t MAX_SIZE_>
template<typename TIterator >
etl::indirect_vector< T, MAX_SIZE_ >::indirect_vector ( TIterator  first,
TIterator  last 
)
inline

Constructor, from an iterator range.

Template Parameters
TIteratorThe iterator type.
Parameters
firstThe iterator to the first element.
lastThe iterator to the last element + 1.

◆ etl::indirect_vector_ext

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

Template deduction guides.

Make A indirect_vector implementation that uses a fixed size buffer. The buffer is supplied on construction.

Template Parameters
TThe element type.

Public Member Functions

 indirect_vector_ext (etl::ivector< T * > &lookup_, etl::ipool &pool_)
 Constructor.
 
 indirect_vector_ext (size_t initial_size, etl::ivector< T * > &lookup_, etl::ipool &pool_)
 
 indirect_vector_ext (size_t initial_size, typename etl::iindirect_vector< T >::parameter_t value, etl::ivector< T * > &lookup_, etl::ipool &pool_)
 
template<typename TIterator >
 indirect_vector_ext (TIterator first, TIterator last, etl::ivector< T * > &lookup_, etl::ipool &pool_)
 
 indirect_vector_ext (const indirect_vector_ext &other, etl::ivector< T * > &lookup_, etl::ipool &pool_)
 Construct a copy.
 
 indirect_vector_ext (const indirect_vector_ext &other) ETL_DELETE
 Copy constructor (Deleted)
 
indirect_vector_extoperator= (const indirect_vector_ext &rhs)
 Assignment operator.
 
 ~indirect_vector_ext ()
 Destructor.
 
- Public Member Functions inherited from etl::iindirect_vector< T >
iterator begin ()
 
const_iterator begin () const
 
iterator end ()
 
const_iterator end () const
 
const_iterator cbegin () const
 
const_iterator cend () const
 
reverse_iterator rbegin ()
 
const_reverse_iterator rbegin () const
 
reverse_iterator rend ()
 
const_reverse_iterator rend () const
 
const_reverse_iterator crbegin () const
 
const_reverse_iterator crend () const
 
void resize (size_t new_size)
 
void resize (size_t new_size, const_reference value)
 
void reserve (size_t)
 
reference operator[] (size_t i)
 
const_reference operator[] (size_t i) const
 
reference at (size_t i)
 
const_reference at (size_t i) const
 
reference front ()
 
const_reference front () const
 
reference back ()
 
const_reference back () const
 
template<typename TIterator >
void assign (TIterator first, TIterator last)
 
void assign (size_t n, parameter_t value)
 
void clear ()
 Clears the indirect_vector.
 
void fill (const T &value)
 Fills the buffer.
 
void push_back (const_reference value)
 
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 an element from the end of the indirect_vector.
 
iterator insert (const_iterator position, const_reference value)
 
template<typename T1 >
iterator emplace (iterator position, const T1 &value1)
 Emplaces a value to the vector at the specified position.
 
template<typename T1 , typename T2 >
iterator emplace (iterator position, const T1 &value1, const T2 &value2)
 
template<typename T1 , typename T2 , typename T3 >
iterator emplace (iterator position, const T1 &value1, const T2 &value2, const T3 &value3)
 
template<typename T1 , typename T2 , typename T3 , typename T4 >
iterator emplace (iterator position, const T1 &value1, const T2 &value2, const T3 &value3, const T4 &value4)
 
iterator insert (const_iterator position, size_t n, parameter_t value)
 
template<class TIterator >
iterator insert (const_iterator position, TIterator first, TIterator last)
 
iterator erase (iterator i_element)
 
iterator erase (const_iterator i_element)
 
iterator erase (const_iterator first, const_iterator last)
 
iindirect_vectoroperator= (const iindirect_vector &rhs)
 Assignment operator.
 
size_type size () const
 
size_type capacity () const
 
bool empty () const
 
bool full () const
 
size_type max_size () const
 
size_type available () const
 

Additional Inherited Members

- Public Types inherited from etl::iindirect_vector< T >
typedef T value_type
 
typedef T & reference
 
typedef const T & const_reference
 
typedef T * pointer
 
typedef const T * const_pointer
 
typedef etl::ivector< T * >::iterator indirect_iterator
 
typedef etl::ivector< T * >::const_iterator indirect_const_iterator
 
typedef etl::ivector< T * >::size_type size_type
 
typedef etl::ivector< T * >::difference_type difference_type
 
typedef ETL_OR_STD::reverse_iterator< iteratorreverse_iterator
 
typedef ETL_OR_STD::reverse_iterator< const_iteratorconst_reverse_iterator
 
- Protected Types inherited from etl::iindirect_vector< T >
typedef etl::parameter_type< T >::type parameter_t
 
- Protected Member Functions inherited from etl::iindirect_vector< T >
 iindirect_vector (etl::ivector< T * > &lookup_, etl::ipool &storage_)
 Constructor.
 
void initialise ()
 Initialise the indirect_vector.
 
 ~iindirect_vector ()
 Destructor.
 
iterator to_iterator (const_iterator itr) const
 Convert from const_iterator to iterator.
 
- Protected Attributes inherited from etl::iindirect_vector< T >
etl::ivector< T * > & lookup
 
etl::ipoolstorage
 

Constructor & Destructor Documentation

◆ indirect_vector_ext() [1/3]

template<typename T >
etl::indirect_vector_ext< T >::indirect_vector_ext ( size_t  initial_size,
etl::ivector< T * > &  lookup_,
etl::ipool pool_ 
)
inlineexplicit

Constructor, with size.

Parameters
initial_sizeThe initial size of the indirect_vector_ext.

◆ indirect_vector_ext() [2/3]

template<typename T >
etl::indirect_vector_ext< T >::indirect_vector_ext ( size_t  initial_size,
typename etl::iindirect_vector< T >::parameter_t  value,
etl::ivector< T * > &  lookup_,
etl::ipool pool_ 
)
inline

Constructor, from initial size and value.

Parameters
initial_sizeThe initial size of the indirect_vector_ext.
valueThe value to fill the indirect_vector_ext with.

◆ indirect_vector_ext() [3/3]

template<typename T >
template<typename TIterator >
etl::indirect_vector_ext< T >::indirect_vector_ext ( TIterator  first,
TIterator  last,
etl::ivector< T * > &  lookup_,
etl::ipool pool_ 
)
inline

Constructor, from an iterator range.

Template Parameters
TIteratorThe iterator type.
Parameters
firstThe iterator to the first element.
lastThe iterator to the last element + 1.

Function Documentation

◆ operator!=()

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

Not equal operator.

Parameters
lhsReference to the first indirect_vector.
rhsReference to the second indirect_vector.
Returns
true if the arrays are not equal, otherwise false

◆ operator<()

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

Less than operator.

Parameters
lhsReference to the first indirect_vector.
rhsReference to the second indirect_vector.
Returns
true if the first indirect_vector is lexicographically less than the second, otherwise false

◆ operator<=()

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

Less than or equal operator.

Parameters
lhsReference to the first indirect_vector.
rhsReference to the second indirect_vector.
Returns
true if the first indirect_vector is lexicographically less than or equal to the second, otherwise false

◆ operator==()

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

Equal operator.

Parameters
lhsReference to the first indirect_vector.
rhsReference to the second indirect_vector.
Returns
true if the arrays are equal, otherwise false

◆ operator>()

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

Greater than operator.

Parameters
lhsReference to the first indirect_vector.
rhsReference to the second indirect_vector.
Returns
true if the first indirect_vector is lexicographically greater than the second, otherwise false

◆ operator>=()

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

Greater than or equal operator.

Parameters
lhsReference to the first indirect_vector.
rhsReference to the second indirect_vector.
Returns
true if the first indirect_vector is lexicographically greater than or equal to the second, otherwise false