31#ifndef ETL_IVECTOR_POINTER_INCLUDED
32#define ETL_IVECTOR_POINTER_INCLUDED
34#ifndef ETL_IN_VECTOR_H
35#error This header is a private element of etl::ivector
52 typedef T* value_type;
53 typedef value_type& reference;
54 typedef const value_type& const_reference;
55 typedef value_type* pointer;
56 typedef const value_type* const_pointer;
57 typedef value_type* iterator;
58 typedef const value_type* const_iterator;
59 typedef ETL_OR_STD::reverse_iterator<iterator> reverse_iterator;
60 typedef ETL_OR_STD::reverse_iterator<const_iterator> const_reverse_iterator;
61 typedef size_t size_type;
62 typedef typename etl::iterator_traits<iterator>::difference_type difference_type;
66 typedef value_type parameter_t;
80 return iterator(base_t::begin());
89 return const_iterator(base_t::begin());
98 return iterator(base_t::end());
105 const_iterator
end()
const
107 return const_iterator(base_t::end());
116 return const_iterator(base_t::cbegin());
125 return const_iterator(base_t::cend());
134 return reverse_iterator(iterator(base_t::end()));
143 return const_reverse_iterator(const_iterator(base_t::end()));
152 return reverse_iterator(iterator(base_t::begin()));
159 const_reverse_iterator
rend()
const
161 return const_reverse_iterator(const_iterator(base_t::begin()));
170 return const_reverse_iterator(const_iterator(base_t::cend()));
177 const_reverse_iterator
crend()
const
179 return const_reverse_iterator(const_iterator(base_t::cbegin()));
211 base_t::uninitialized_resize(
new_size);
219 reference operator [](
size_t i)
221 return reference(base_t::operator[](i));
229 const_reference operator [](
size_t i)
const
231 return const_reference(base_t::operator[](i));
240 reference
at(
size_t i)
242 return reference(base_t::at(i));
251 const_reference
at(
size_t i)
const
253 return const_reference(base_t::at(i));
262 return reference(base_t::front());
271 return const_reference(base_t::front());
280 return reference(base_t::back());
289 return const_reference(base_t::back());
298 return pointer(base_t::data());
307 return const_pointer(base_t::data());
317 template <
typename TIterator>
320 base_t::assign(first, last);
331 base_t::assign(
n, value);
349 base_t::push_back(value);
359 base_t::emplace_back(ETL_NULLPTR);
371 base_t::emplace_back(value);
391 iterator
insert(const_iterator position, parameter_t value)
393 return iterator(base_t::insert(base_t::iterator(position), value));
401 return iterator(base_t::emplace(base_t::iterator(position), ETL_NULLPTR));
407 iterator
emplace(const_iterator position, parameter_t value)
409 return iterator(base_t::emplace(base_t::iterator(position), value));
419 void insert(const_iterator position,
size_t n, parameter_t value)
421 base_t::insert(base_t::iterator(position),
n, value);
431 template <
class TIterator>
434 base_t::insert(base_t::iterator(position), first, last);
444 return iterator(base_t::erase(base_t::iterator(
i_element)));
454 return iterator(base_t::erase(base_t::const_iterator(
i_element)));
465 iterator
erase(const_iterator first, const_iterator last)
467 return iterator(base_t::erase(base_t::const_iterator(first), base_t::const_iterator(last)));
475 base_t::operator = (
rhs);
486 (
void)base_t::operator = (etl::move(
rhs));
492#ifdef ETL_IVECTOR_REPAIR_ENABLE
496 virtual void repair() = 0;
510 template <
typename T>
515 typedef const T* value_type;
516 typedef value_type& reference;
517 typedef const value_type& const_reference;
518 typedef value_type* pointer;
519 typedef const value_type* const_pointer;
520 typedef value_type* iterator;
521 typedef const value_type* const_iterator;
522 typedef ETL_OR_STD::reverse_iterator<iterator> reverse_iterator;
523 typedef ETL_OR_STD::reverse_iterator<const_iterator> const_reverse_iterator;
524 typedef size_t size_type;
525 typedef typename etl::iterator_traits<iterator>::difference_type difference_type;
529 typedef value_type parameter_t;
543 return iterator(base_t::begin());
552 return const_iterator(base_t::begin());
561 return iterator(base_t::end());
568 const_iterator
end()
const
570 return const_iterator(base_t::end());
579 return const_iterator(base_t::cbegin());
588 return const_iterator(base_t::cend());
597 return reverse_iterator(iterator(base_t::end()));
606 return const_reverse_iterator(const_iterator(base_t::end()));
615 return reverse_iterator(iterator(base_t::begin()));
622 const_reverse_iterator
rend()
const
624 return const_reverse_iterator(const_iterator(base_t::begin()));
633 return const_reverse_iterator(const_iterator(base_t::cend()));
640 const_reverse_iterator
crend()
const
642 return const_reverse_iterator(const_iterator(base_t::cbegin()));
665 base_t::resize(
new_size,
const_cast<T*
>(value));
674 base_t::uninitialized_resize(
new_size);
682 reference operator [](
size_t i)
684 return reference(base_t::operator[](i));
692 const_reference operator [](
size_t i)
const
694 return const_reference(base_t::operator[](i));
703 reference
at(
size_t i)
705 return reference(base_t::at(i));
714 const_reference
at(
size_t i)
const
716 return const_reference(base_t::at(i));
725 return reference(base_t::front());
734 return const_reference(base_t::front());
743 return reference(base_t::back());
752 return const_reference(base_t::back());
761 return pointer(base_t::data());
770 return const_pointer(base_t::data());
780 template <
typename TIterator>
783 base_t::assign(first, last);
794 base_t::assign(
n,
const_cast<T*
>(value));
812 base_t::push_back(
const_cast<T*
>(value));
830 iterator
insert(const_iterator position, parameter_t value)
832 return iterator(base_t::insert(base_t::iterator(position),
const_cast<T*
>(value)));
842 void insert(const_iterator position,
size_t n, parameter_t value)
844 base_t::insert(base_t::iterator(position),
n,
const_cast<T*
>(value));
854 template <
class TIterator>
857 base_t::insert(base_t::iterator(position), first, last);
867 return iterator(base_t::erase(base_t::iterator(
i_element)));
877 return iterator(base_t::erase(base_t::iterator(
i_element)));
888 iterator
erase(const_iterator first, const_iterator last)
890 return iterator(base_t::erase(base_t::iterator(first), base_t::iterator(last)));
898 base_t::operator = (
rhs);
909 (
void)base_t::operator = (etl::move(
rhs));
915#ifdef ETL_IVECTOR_REPAIR_ENABLE
919 virtual void repair() = 0;
940 template <
typename T>
943 return pvoidvector_equal(
lhs,
rhs);
953 template <
typename T>
956 return pvoidvector_not_equal(
lhs,
rhs);
966 template <
typename T>
969 return pvoidvector_less_than(
lhs,
rhs);
979 template <
typename T>
982 return pvoidvector_greater_than(
lhs,
rhs);
992 template <
typename T>
995 return pvoidvector_less_than_equal(
lhs,
rhs);
1005 template <
typename T>
1008 return pvoidvector_greater_than_equal(
lhs,
rhs);
const_reference front() const
Definition ivectorpointer.h:732
const_reverse_iterator rbegin() const
Definition ivectorpointer.h:604
void resize(size_t new_size, value_type value)
Definition ivectorpointer.h:663
reference front()
Definition ivectorpointer.h:723
void resize(size_t new_size)
Definition ivectorpointer.h:651
void insert(const_iterator position, TIterator first, TIterator last)
Definition ivectorpointer.h:855
const_reference back() const
Definition ivectorpointer.h:750
iterator erase(iterator i_element)
Definition ivectorpointer.h:865
iterator insert(const_iterator position, parameter_t value)
Definition ivectorpointer.h:830
reverse_iterator rbegin()
Definition ivectorpointer.h:595
ivector(const T **p_buffer_, size_t MAX_SIZE_)
Constructor.
Definition ivectorpointer.h:927
void uninitialized_resize(size_t new_size)
Definition ivectorpointer.h:672
const_iterator cbegin() const
Definition ivectorpointer.h:577
iterator erase(const_iterator first, const_iterator last)
Definition ivectorpointer.h:888
pointer data()
Definition ivectorpointer.h:759
void push_back(parameter_t value)
Definition ivectorpointer.h:810
reference at(size_t i)
Definition ivectorpointer.h:703
iterator erase(const_iterator i_element)
Definition ivectorpointer.h:875
const_iterator cend() const
Definition ivectorpointer.h:586
const_pointer data() const
Definition ivectorpointer.h:768
iterator end()
Definition ivectorpointer.h:559
reference back()
Definition ivectorpointer.h:741
void insert(const_iterator position, size_t n, parameter_t value)
Definition ivectorpointer.h:842
const_reverse_iterator crbegin() const
Definition ivectorpointer.h:631
const_reverse_iterator crend() const
Definition ivectorpointer.h:640
const_reference at(size_t i) const
Definition ivectorpointer.h:714
void pop_back()
Definition ivectorpointer.h:819
void assign(TIterator first, TIterator last)
Definition ivectorpointer.h:781
void clear()
Clears the vector.
Definition ivectorpointer.h:800
const_iterator end() const
Definition ivectorpointer.h:568
const_reverse_iterator rend() const
Definition ivectorpointer.h:622
void assign(size_t n, parameter_t value)
Definition ivectorpointer.h:792
reverse_iterator rend()
Definition ivectorpointer.h:613
const_iterator begin() const
Definition ivectorpointer.h:550
iterator begin()
Definition ivectorpointer.h:541
reference front()
Definition ivectorpointer.h:260
reverse_iterator rend()
Definition ivectorpointer.h:150
const_reverse_iterator rbegin() const
Definition ivectorpointer.h:141
void assign(TIterator first, TIterator last)
Definition ivectorpointer.h:318
void push_back(parameter_t value)
Definition ivectorpointer.h:347
const_iterator begin() const
Definition ivectorpointer.h:87
const_iterator cbegin() const
Definition ivectorpointer.h:114
void insert(const_iterator position, TIterator first, TIterator last)
Definition ivectorpointer.h:432
void pop_back()
Definition ivectorpointer.h:380
const_reference front() const
Definition ivectorpointer.h:269
void assign(size_t n, parameter_t value)
Definition ivectorpointer.h:329
reference back()
Definition ivectorpointer.h:278
const_reference at(size_t i) const
Definition ivectorpointer.h:251
const_reverse_iterator crend() const
Definition ivectorpointer.h:177
iterator emplace(const_iterator position, parameter_t value)
Emplaces a value to the vector at the specified position.
Definition ivectorpointer.h:407
const_reference back() const
Definition ivectorpointer.h:287
void resize(size_t new_size, value_type value)
Definition ivectorpointer.h:200
const_reverse_iterator rend() const
Definition ivectorpointer.h:159
const_iterator end() const
Definition ivectorpointer.h:105
const_iterator cend() const
Definition ivectorpointer.h:123
void uninitialized_resize(size_t new_size)
Definition ivectorpointer.h:209
reverse_iterator rbegin()
Definition ivectorpointer.h:132
reference at(size_t i)
Definition ivectorpointer.h:240
void insert(const_iterator position, size_t n, parameter_t value)
Definition ivectorpointer.h:419
iterator erase(iterator i_element)
Definition ivectorpointer.h:442
iterator erase(const_iterator i_element)
Definition ivectorpointer.h:452
iterator end()
Definition ivectorpointer.h:96
reference emplace_back()
Definition ivectorpointer.h:357
ivector(T **p_buffer_, size_t MAX_SIZE_)
Constructor.
Definition ivectorpointer.h:504
const_reverse_iterator crbegin() const
Definition ivectorpointer.h:168
iterator emplace(const_iterator position)
Emplaces a value to the vector at the specified position.
Definition ivectorpointer.h:399
iterator begin()
Definition ivectorpointer.h:78
iterator insert(const_iterator position, parameter_t value)
Definition ivectorpointer.h:391
pointer data()
Definition ivectorpointer.h:296
reference emplace_back(parameter_t value)
Definition ivectorpointer.h:369
const_pointer data() const
Definition ivectorpointer.h:305
iterator erase(const_iterator first, const_iterator last)
Definition ivectorpointer.h:465
void clear()
Clears the vector.
Definition ivectorpointer.h:337
void resize(size_t new_size)
Definition ivectorpointer.h:188
Definition pvoidvector.h:55
bitset_ext
Definition absolute.h:38
bool operator>(const etl::array< T, SIZE > &lhs, const etl::array< T, SIZE > &rhs)
Definition array.h:1148
bool operator>=(const etl::array< T, SIZE > &lhs, const etl::array< T, SIZE > &rhs)
Definition array.h:1160
bool operator!=(const etl::array< T, SIZE > &lhs, const etl::array< T, SIZE > &rhs)
Definition array.h:1109
bool operator==(const etl::array< T, SIZE > &lhs, const etl::array< T, SIZE > &rhs)
Definition array.h:1097
ETL_NODISCARD ETL_CONSTEXPR14 T round_half_even_unscaled(T value) ETL_NOEXCEPT
Definition scaled_rounding.h:314
bool operator<(const etl::array< T, SIZE > &lhs, const etl::array< T, SIZE > &rhs)
Definition array.h:1121
bool operator<=(const etl::array< T, SIZE > &lhs, const etl::array< T, SIZE > &rhs)
Definition array.h:1136