Embedded Template Library 1.0
Loading...
Searching...
No Matches
ivectorpointer.h
Go to the documentation of this file.
1
2
3/******************************************************************************
4The MIT License(MIT)
5
6Embedded Template Library.
7https://github.com/ETLCPP/etl
8https://www.etlcpp.com
9
10Copyright(c) 2016 John Wellbelove
11
12Permission is hereby granted, free of charge, to any person obtaining a copy
13of this software and associated documentation files(the "Software"), to deal
14in the Software without restriction, including without limitation the rights
15to use, copy, modify, merge, publish, distribute, sublicense, and / or sell
16copies of the Software, and to permit persons to whom the Software is
17furnished to do so, subject to the following conditions :
18
19The above copyright notice and this permission notice shall be included in all
20copies or substantial portions of the Software.
21
22THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
23IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
24FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE
25AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
26LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
27OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
28SOFTWARE.
29******************************************************************************/
30
31#ifndef ETL_IVECTOR_POINTER_INCLUDED
32#define ETL_IVECTOR_POINTER_INCLUDED
33
34#ifndef ETL_IN_VECTOR_H
35 #error This header is a private element of etl::ivector
36#endif
37
38#include "pvoidvector.h"
39
40namespace etl
41{
42 //***************************************************************************
47 //***************************************************************************
48 template <typename T>
49 class ivector<T*> : public pvoidvector
50 {
51 public:
52
53 typedef T* value_type;
54 typedef value_type& reference;
55 typedef const value_type& const_reference;
56 typedef value_type* pointer;
57 typedef const value_type* const_pointer;
58 typedef value_type* iterator;
59 typedef const value_type* const_iterator;
60 typedef ETL_OR_STD::reverse_iterator<iterator> reverse_iterator;
61 typedef ETL_OR_STD::reverse_iterator<const_iterator> const_reverse_iterator;
62 typedef size_t size_type;
63 typedef typename etl::iterator_traits<iterator>::difference_type difference_type;
64
65 protected:
66
67 typedef value_type parameter_t;
68
69 private:
70
71 typedef pvoidvector base_t;
72
73 public:
74
75 //*********************************************************************
78 //*********************************************************************
79 iterator begin()
80 {
81 return iterator(base_t::begin());
82 }
83
84 //*********************************************************************
87 //*********************************************************************
88 const_iterator begin() const
89 {
90 return const_iterator(base_t::begin());
91 }
92
93 //*********************************************************************
96 //*********************************************************************
97 iterator end()
98 {
99 return iterator(base_t::end());
100 }
101
102 //*********************************************************************
105 //*********************************************************************
106 const_iterator end() const
107 {
108 return const_iterator(base_t::end());
109 }
110
111 //*********************************************************************
114 //*********************************************************************
115 const_iterator cbegin() const
116 {
117 return const_iterator(base_t::cbegin());
118 }
119
120 //*********************************************************************
123 //*********************************************************************
124 const_iterator cend() const
125 {
126 return const_iterator(base_t::cend());
127 }
128
129 //*********************************************************************
132 //*********************************************************************
133 reverse_iterator rbegin()
134 {
135 return reverse_iterator(iterator(base_t::end()));
136 }
137
138 //*********************************************************************
141 //*********************************************************************
142 const_reverse_iterator rbegin() const
143 {
144 return const_reverse_iterator(const_iterator(base_t::end()));
145 }
146
147 //*********************************************************************
150 //*********************************************************************
151 reverse_iterator rend()
152 {
153 return reverse_iterator(iterator(base_t::begin()));
154 }
155
156 //*********************************************************************
159 //*********************************************************************
160 const_reverse_iterator rend() const
161 {
162 return const_reverse_iterator(const_iterator(base_t::begin()));
163 }
164
165 //*********************************************************************
168 //*********************************************************************
169 const_reverse_iterator crbegin() const
170 {
171 return const_reverse_iterator(const_iterator(base_t::cend()));
172 }
173
174 //*********************************************************************
177 //*********************************************************************
178 const_reverse_iterator crend() const
179 {
180 return const_reverse_iterator(const_iterator(base_t::cbegin()));
181 }
182
183 //*********************************************************************
188 //*********************************************************************
189 void resize(size_t new_size)
190 {
191 base_t::resize(new_size);
192 }
193
194 //*********************************************************************
201 //*********************************************************************
202 void resize(size_t new_size, value_type value)
203 {
204 base_t::resize(new_size, value);
205 }
206
207 //*********************************************************************
210 //*********************************************************************
211 void uninitialized_resize(size_t new_size)
212 {
214 }
215
216 //*********************************************************************
220 //*********************************************************************
221 reference operator[](size_t i)
222 {
223 return reference(base_t::operator[](i));
224 }
225
226 //*********************************************************************
230 //*********************************************************************
231 const_reference operator[](size_t i) const
232 {
233 return const_reference(base_t::operator[](i));
234 }
235
236 //*********************************************************************
242 //*********************************************************************
243 reference at(size_t i)
244 {
245 return reference(base_t::at(i));
246 }
247
248 //*********************************************************************
254 //*********************************************************************
255 const_reference at(size_t i) const
256 {
257 return const_reference(base_t::at(i));
258 }
259
260 //*********************************************************************
263 //*********************************************************************
264 reference front()
265 {
266 return reference(base_t::front());
267 }
268
269 //*********************************************************************
272 //*********************************************************************
273 const_reference front() const
274 {
275 return const_reference(base_t::front());
276 }
277
278 //*********************************************************************
281 //*********************************************************************
282 reference back()
283 {
284 return reference(base_t::back());
285 }
286
287 //*********************************************************************
290 //*********************************************************************
291 const_reference back() const
292 {
293 return const_reference(base_t::back());
294 }
295
296 //*********************************************************************
299 //*********************************************************************
300 pointer data()
301 {
302 return pointer(base_t::data());
303 }
304
305 //*********************************************************************
308 //*********************************************************************
309 const_pointer data() const
310 {
311 return const_pointer(base_t::data());
312 }
313
314 //*********************************************************************
321 //*********************************************************************
322 template <typename TIterator>
323 void assign(TIterator first, TIterator last)
324 {
325 base_t::assign(first, last);
326 }
327
328 //*********************************************************************
334 //*********************************************************************
335 void assign(size_t n, parameter_t value)
336 {
337 base_t::assign(n, value);
338 }
339
340 //*************************************************************************
342 //*************************************************************************
343 void clear()
344 {
346 }
347
348 //*********************************************************************
353 //*********************************************************************
354 void push_back(parameter_t value)
355 {
356 base_t::push_back(value);
357 }
358
359 //*********************************************************************
364 //*********************************************************************
365 reference emplace_back()
366 {
367 base_t::emplace_back(ETL_NULLPTR);
368
369 return back();
370 }
371
372 //*********************************************************************
377 //*********************************************************************
378 reference emplace_back(parameter_t value)
379 {
381
382 return back();
383 }
384
385 //*************************************************************************
388 //*************************************************************************
389 void pop_back()
390 {
392 }
393
394 //*********************************************************************
400 //*********************************************************************
401 iterator insert(const_iterator position, parameter_t value)
402 {
403 return iterator(base_t::insert(base_t::iterator(position), value));
404 }
405
406 //*************************************************************************
408 //*************************************************************************
409 iterator emplace(const_iterator position)
410 {
411 return iterator(base_t::emplace(base_t::iterator(position), ETL_NULLPTR));
412 }
413
414 //*************************************************************************
416 //*************************************************************************
417 iterator emplace(const_iterator position, parameter_t value)
418 {
419 return iterator(base_t::emplace(base_t::iterator(position), value));
420 }
421
422 //*********************************************************************
429 //*********************************************************************
430 void insert(const_iterator position, size_t n, parameter_t value)
431 {
432 base_t::insert(base_t::iterator(position), n, value);
433 }
434
435 //*********************************************************************
442 //*********************************************************************
443 template <class TIterator>
444 void insert(const_iterator position, TIterator first, TIterator last)
445 {
446 base_t::insert(base_t::iterator(position), first, last);
447 }
448
449 //*********************************************************************
454 //*********************************************************************
455 iterator erase(iterator i_element)
456 {
457 return iterator(base_t::erase(base_t::iterator(i_element)));
458 }
459
460 //*********************************************************************
465 //*********************************************************************
466 iterator erase(const_iterator i_element)
467 {
468 return iterator(base_t::erase(base_t::const_iterator(i_element)));
469 }
470
471 //*********************************************************************
479 //*********************************************************************
480 iterator erase(const_iterator first, const_iterator last)
481 {
482 return iterator(base_t::erase(base_t::const_iterator(first), base_t::const_iterator(last)));
483 }
484
485 //*********************************************************************
489 //*********************************************************************
490 void swap(ivector<T*>& other)
491 {
492 if (this == &other)
493 {
494 return;
495 }
496
497 ETL_ASSERT_OR_RETURN(this->max_size() >= other.size() && other.max_size() >= this->size(), ETL_ERROR(vector_full));
498
499 ivector<T*>& smaller = other.size() > this->size() ? *this : other;
500 ivector<T*>& larger = other.size() > this->size() ? other : *this;
501
502 etl::swap_ranges(smaller.begin(), smaller.end(), larger.begin());
503
504 typename ivector<T*>::iterator larger_itr = etl::next(larger.begin(), static_cast<ptrdiff_t>(smaller.size()));
505
506 etl::move(larger_itr, larger.end(), etl::back_inserter(smaller));
507
508 larger.erase(larger_itr, larger.end());
509 }
510
511 //*************************************************************************
513 //*************************************************************************
515 {
517
518 return *this;
519 }
520
521#if ETL_USING_CPP11
522 //*************************************************************************
524 //*************************************************************************
525 ivector& operator=(ivector&& rhs)
526 {
527 (void)base_t::operator=(etl::move(rhs));
528
529 return *this;
530 }
531#endif
532
533#ifdef ETL_IVECTOR_REPAIR_ENABLE
534 //*************************************************************************
536 //*************************************************************************
537 virtual void repair() = 0;
538#endif
539
540 protected:
541
542 //*********************************************************************
544 //*********************************************************************
545 ivector(T** p_buffer_, size_t MAX_SIZE_)
546 : pvoidvector(reinterpret_cast<void**>(p_buffer_), MAX_SIZE_)
547 {
548 }
549 };
550
551 template <typename T>
552 class ivector<const T*> : public pvoidvector
553 {
554 public:
555
556 typedef const T* value_type;
557 typedef value_type& reference;
558 typedef const value_type& const_reference;
559 typedef value_type* pointer;
560 typedef const value_type* const_pointer;
561 typedef value_type* iterator;
562 typedef const value_type* const_iterator;
563 typedef ETL_OR_STD::reverse_iterator<iterator> reverse_iterator;
564 typedef ETL_OR_STD::reverse_iterator<const_iterator> const_reverse_iterator;
565 typedef size_t size_type;
566 typedef typename etl::iterator_traits<iterator>::difference_type difference_type;
567
568 protected:
569
570 typedef value_type parameter_t;
571
572 private:
573
574 typedef pvoidvector base_t;
575
576 public:
577
578 //*********************************************************************
581 //*********************************************************************
582 iterator begin()
583 {
584 return iterator(base_t::begin());
585 }
586
587 //*********************************************************************
590 //*********************************************************************
591 const_iterator begin() const
592 {
593 return const_iterator(base_t::begin());
594 }
595
596 //*********************************************************************
599 //*********************************************************************
600 iterator end()
601 {
602 return iterator(base_t::end());
603 }
604
605 //*********************************************************************
608 //*********************************************************************
609 const_iterator end() const
610 {
611 return const_iterator(base_t::end());
612 }
613
614 //*********************************************************************
617 //*********************************************************************
618 const_iterator cbegin() const
619 {
620 return const_iterator(base_t::cbegin());
621 }
622
623 //*********************************************************************
626 //*********************************************************************
627 const_iterator cend() const
628 {
629 return const_iterator(base_t::cend());
630 }
631
632 //*********************************************************************
635 //*********************************************************************
636 reverse_iterator rbegin()
637 {
638 return reverse_iterator(iterator(base_t::end()));
639 }
640
641 //*********************************************************************
644 //*********************************************************************
645 const_reverse_iterator rbegin() const
646 {
647 return const_reverse_iterator(const_iterator(base_t::end()));
648 }
649
650 //*********************************************************************
653 //*********************************************************************
654 reverse_iterator rend()
655 {
656 return reverse_iterator(iterator(base_t::begin()));
657 }
658
659 //*********************************************************************
662 //*********************************************************************
663 const_reverse_iterator rend() const
664 {
665 return const_reverse_iterator(const_iterator(base_t::begin()));
666 }
667
668 //*********************************************************************
671 //*********************************************************************
672 const_reverse_iterator crbegin() const
673 {
674 return const_reverse_iterator(const_iterator(base_t::cend()));
675 }
676
677 //*********************************************************************
680 //*********************************************************************
681 const_reverse_iterator crend() const
682 {
683 return const_reverse_iterator(const_iterator(base_t::cbegin()));
684 }
685
686 //*********************************************************************
691 //*********************************************************************
692 void resize(size_t new_size)
693 {
694 base_t::resize(new_size);
695 }
696
697 //*********************************************************************
704 //*********************************************************************
705 void resize(size_t new_size, value_type value)
706 {
707 base_t::resize(new_size, const_cast<T*>(value));
708 }
709
710 //*********************************************************************
713 //*********************************************************************
714 void uninitialized_resize(size_t new_size)
715 {
717 }
718
719 //*********************************************************************
723 //*********************************************************************
724 reference operator[](size_t i)
725 {
726 return reference(base_t::operator[](i));
727 }
728
729 //*********************************************************************
733 //*********************************************************************
734 const_reference operator[](size_t i) const
735 {
736 return const_reference(base_t::operator[](i));
737 }
738
739 //*********************************************************************
745 //*********************************************************************
746 reference at(size_t i)
747 {
748 return reference(base_t::at(i));
749 }
750
751 //*********************************************************************
757 //*********************************************************************
758 const_reference at(size_t i) const
759 {
760 return const_reference(base_t::at(i));
761 }
762
763 //*********************************************************************
766 //*********************************************************************
767 reference front()
768 {
769 return reference(base_t::front());
770 }
771
772 //*********************************************************************
775 //*********************************************************************
776 const_reference front() const
777 {
778 return const_reference(base_t::front());
779 }
780
781 //*********************************************************************
784 //*********************************************************************
785 reference back()
786 {
787 return reference(base_t::back());
788 }
789
790 //*********************************************************************
793 //*********************************************************************
794 const_reference back() const
795 {
796 return const_reference(base_t::back());
797 }
798
799 //*********************************************************************
802 //*********************************************************************
803 pointer data()
804 {
805 return pointer(base_t::data());
806 }
807
808 //*********************************************************************
811 //*********************************************************************
812 const_pointer data() const
813 {
814 return const_pointer(base_t::data());
815 }
816
817 //*********************************************************************
824 //*********************************************************************
825 template <typename TIterator>
826 void assign(TIterator first, TIterator last)
827 {
828 base_t::assign(first, last);
829 }
830
831 //*********************************************************************
837 //*********************************************************************
838 void assign(size_t n, parameter_t value)
839 {
840 base_t::assign(n, const_cast<T*>(value));
841 }
842
843 //*************************************************************************
845 //*************************************************************************
846 void clear()
847 {
849 }
850
851 //*********************************************************************
856 //*********************************************************************
857 void push_back(parameter_t value)
858 {
859 base_t::push_back(const_cast<T*>(value));
860 }
861
862 //*************************************************************************
865 //*************************************************************************
866 void pop_back()
867 {
869 }
870
871 //*********************************************************************
877 //*********************************************************************
878 iterator insert(const_iterator position, parameter_t value)
879 {
880 return iterator(base_t::insert(base_t::iterator(position), const_cast<T*>(value)));
881 }
882
883 //*********************************************************************
890 //*********************************************************************
891 void insert(const_iterator position, size_t n, parameter_t value)
892 {
893 base_t::insert(base_t::iterator(position), n, const_cast<T*>(value));
894 }
895
896 //*********************************************************************
903 //*********************************************************************
904 template <class TIterator>
905 void insert(const_iterator position, TIterator first, TIterator last)
906 {
907 base_t::insert(base_t::iterator(position), first, last);
908 }
909
910 //*********************************************************************
915 //*********************************************************************
916 iterator erase(iterator i_element)
917 {
918 return iterator(base_t::erase(base_t::iterator(i_element)));
919 }
920
921 //*********************************************************************
926 //*********************************************************************
927 iterator erase(const_iterator i_element)
928 {
929 return iterator(base_t::erase(base_t::iterator(i_element)));
930 }
931
932 //*********************************************************************
940 //*********************************************************************
941 iterator erase(const_iterator first, const_iterator last)
942 {
943 return iterator(base_t::erase(base_t::iterator(first), base_t::iterator(last)));
944 }
945
946 //*********************************************************************
950 //*********************************************************************
952 {
953 if (this == &other)
954 {
955 return;
956 }
957
958 ETL_ASSERT_OR_RETURN(this->max_size() >= other.size() && other.max_size() >= this->size(), ETL_ERROR(vector_full));
959
960 ivector<const T*>& smaller = other.size() > this->size() ? *this : other;
961 ivector<const T*>& larger = other.size() > this->size() ? other : *this;
962
963 etl::swap_ranges(smaller.begin(), smaller.end(), larger.begin());
964
965 typename ivector<const T*>::iterator larger_itr = etl::next(larger.begin(), static_cast<ptrdiff_t>(smaller.size()));
966
967 etl::move(larger_itr, larger.end(), etl::back_inserter(smaller));
968
969 larger.erase(larger_itr, larger.end());
970 }
971
972 //*************************************************************************
974 //*************************************************************************
976 {
978
979 return *this;
980 }
981
982#if ETL_USING_CPP11
983 //*************************************************************************
985 //*************************************************************************
986 ivector& operator=(ivector&& rhs)
987 {
988 (void)base_t::operator=(etl::move(rhs));
989
990 return *this;
991 }
992#endif
993
994#ifdef ETL_IVECTOR_REPAIR_ENABLE
995 //*************************************************************************
997 //*************************************************************************
998 virtual void repair() = 0;
999#endif
1000
1001 protected:
1002
1003 //*********************************************************************
1005 //*********************************************************************
1006 ivector(const T** p_buffer_, size_t MAX_SIZE_)
1007 : pvoidvector(reinterpret_cast<void**>(const_cast<T**>(p_buffer_)), MAX_SIZE_)
1008 {
1009 }
1010 };
1011
1012 //***************************************************************************
1018 //***************************************************************************
1019 template <typename T>
1020 bool operator==(const etl::ivector<T*>& lhs, const etl::ivector<T*>& rhs)
1021 {
1022 return pvoidvector_equal(lhs, rhs);
1023 }
1024
1025 //***************************************************************************
1031 //***************************************************************************
1032 template <typename T>
1033 bool operator!=(const etl::ivector<T*>& lhs, const etl::ivector<T*>& rhs)
1034 {
1035 return pvoidvector_not_equal(lhs, rhs);
1036 }
1037
1038 //***************************************************************************
1044 //***************************************************************************
1045 template <typename T>
1046 bool operator<(const etl::ivector<T*>& lhs, const etl::ivector<T*>& rhs)
1047 {
1048 return pvoidvector_less_than(lhs, rhs);
1049 }
1050
1051 //***************************************************************************
1057 //***************************************************************************
1058 template <typename T>
1059 bool operator>(const etl::ivector<T*>& lhs, const etl::ivector<T*>& rhs)
1060 {
1061 return pvoidvector_greater_than(lhs, rhs);
1062 }
1063
1064 //***************************************************************************
1071 //***************************************************************************
1072 template <typename T>
1073 bool operator<=(const etl::ivector<T*>& lhs, const etl::ivector<T*>& rhs)
1074 {
1075 return pvoidvector_less_than_equal(lhs, rhs);
1076 }
1077
1078 //***************************************************************************
1085 //***************************************************************************
1086 template <typename T>
1087 bool operator>=(const etl::ivector<T*>& lhs, const etl::ivector<T*>& rhs)
1088 {
1089 return pvoidvector_greater_than_equal(lhs, rhs);
1090 }
1091
1092 //***************************************************************************
1093 // Helper functions
1094 //***************************************************************************
1095 inline bool pvoidvector_equal(const etl::pvoidvector& lhs, const etl::pvoidvector& rhs)
1096 {
1097 return operator==(lhs, rhs);
1098 }
1099
1100 inline bool pvoidvector_not_equal(const etl::pvoidvector& lhs, const etl::pvoidvector& rhs)
1101 {
1102 return operator!=(lhs, rhs);
1103 }
1104
1105 inline bool pvoidvector_less_than(const etl::pvoidvector& lhs, const etl::pvoidvector& rhs)
1106 {
1107 return operator<(lhs, rhs);
1108 }
1109
1110 inline bool pvoidvector_greater_than(const etl::pvoidvector& lhs, const etl::pvoidvector& rhs)
1111 {
1112 return operator>(lhs, rhs);
1113 }
1114
1115 inline bool pvoidvector_less_than_equal(const etl::pvoidvector& lhs, const etl::pvoidvector& rhs)
1116 {
1117 return operator<=(lhs, rhs);
1118 }
1119
1120 inline bool pvoidvector_greater_than_equal(const etl::pvoidvector& lhs, const etl::pvoidvector& rhs)
1121 {
1122 return operator>=(lhs, rhs);
1123 }
1124} // namespace etl
1125
1126#endif
const_reference front() const
Definition ivectorpointer.h:776
const_reverse_iterator rbegin() const
Definition ivectorpointer.h:645
void resize(size_t new_size, value_type value)
Definition ivectorpointer.h:705
reference front()
Definition ivectorpointer.h:767
void resize(size_t new_size)
Definition ivectorpointer.h:692
void insert(const_iterator position, TIterator first, TIterator last)
Definition ivectorpointer.h:905
const_reference back() const
Definition ivectorpointer.h:794
iterator erase(iterator i_element)
Definition ivectorpointer.h:916
iterator insert(const_iterator position, parameter_t value)
Definition ivectorpointer.h:878
reverse_iterator rbegin()
Definition ivectorpointer.h:636
ivector(const T **p_buffer_, size_t MAX_SIZE_)
Constructor.
Definition ivectorpointer.h:1006
void uninitialized_resize(size_t new_size)
Definition ivectorpointer.h:714
const_iterator cbegin() const
Definition ivectorpointer.h:618
iterator erase(const_iterator first, const_iterator last)
Definition ivectorpointer.h:941
pointer data()
Definition ivectorpointer.h:803
void push_back(parameter_t value)
Definition ivectorpointer.h:857
ivector & operator=(const ivector &rhs)
Assignment operator.
Definition ivectorpointer.h:975
reference at(size_t i)
Definition ivectorpointer.h:746
iterator erase(const_iterator i_element)
Definition ivectorpointer.h:927
const_iterator cend() const
Definition ivectorpointer.h:627
const_pointer data() const
Definition ivectorpointer.h:812
iterator end()
Definition ivectorpointer.h:600
reference back()
Definition ivectorpointer.h:785
void insert(const_iterator position, size_t n, parameter_t value)
Definition ivectorpointer.h:891
const_reverse_iterator crbegin() const
Definition ivectorpointer.h:672
const_reverse_iterator crend() const
Definition ivectorpointer.h:681
const_reference at(size_t i) const
Definition ivectorpointer.h:758
void pop_back()
Definition ivectorpointer.h:866
void assign(TIterator first, TIterator last)
Definition ivectorpointer.h:826
void clear()
Clears the vector.
Definition ivectorpointer.h:846
const_iterator end() const
Definition ivectorpointer.h:609
const_reference operator[](size_t i) const
Definition ivectorpointer.h:734
reference operator[](size_t i)
Definition ivectorpointer.h:724
const_reverse_iterator rend() const
Definition ivectorpointer.h:663
void swap(ivector< const T * > &other)
Definition ivectorpointer.h:951
void assign(size_t n, parameter_t value)
Definition ivectorpointer.h:838
reverse_iterator rend()
Definition ivectorpointer.h:654
const_iterator begin() const
Definition ivectorpointer.h:591
iterator begin()
Definition ivectorpointer.h:582
etl::enable_if<!etl::is_pointer< TIterator >::value, void >::type assign(TIterator first, TIterator last)
Definition pvoidvector.h:342
iterator begin()
Definition vector.h:99
reference front()
Definition ivectorpointer.h:264
reverse_iterator rend()
Definition ivectorpointer.h:151
const_reverse_iterator rbegin() const
Definition ivectorpointer.h:142
iterator begin()
Definition pvoidvector.h:76
void emplace_back(value_type value)
Definition pvoidvector.h:425
void assign(TIterator first, TIterator last)
Definition ivectorpointer.h:323
void push_back(parameter_t value)
Definition ivectorpointer.h:354
const_iterator begin() const
Definition ivectorpointer.h:88
const_iterator cbegin() const
Definition ivectorpointer.h:115
iterator erase(iterator i_element)
Definition pvoidvector.h:623
pointer data()
Definition pvoidvector.h:319
size_type max_size() const
Definition vector_base.h:140
void insert(const_iterator position, TIterator first, TIterator last)
Definition ivectorpointer.h:444
const_reference operator[](size_t i) const
Definition ivectorpointer.h:231
void pop_back()
Definition ivectorpointer.h:389
const_reference front() const
Definition ivectorpointer.h:273
void assign(size_t n, parameter_t value)
Definition ivectorpointer.h:335
reference operator[](size_t i)
Definition ivectorpointer.h:221
reference back()
Definition ivectorpointer.h:282
const_reference at(size_t i) const
Definition ivectorpointer.h:255
const_reverse_iterator crend() const
Definition ivectorpointer.h:178
iterator emplace(const_iterator position, parameter_t value)
Emplaces a value to the vector at the specified position.
Definition ivectorpointer.h:417
const_reference back() const
Definition ivectorpointer.h:291
void resize(size_t new_size, value_type value)
Definition ivectorpointer.h:202
iterator emplace(const_iterator position)
Definition pvoidvector.h:488
etl::pvoidvector & operator=(const etl::pvoidvector &rhs)
Assignment operator.
Definition pvoidvector.h:679
const_reverse_iterator rend() const
Definition ivectorpointer.h:160
const_iterator end() const
Definition ivectorpointer.h:106
iterator end()
Definition vector.h:117
const_iterator cend() const
Definition ivectorpointer.h:124
iterator insert(const_iterator position, value_type value)
Definition pvoidvector.h:453
void uninitialized_resize(size_t new_size)
Definition ivectorpointer.h:211
void clear()
Clears the vector.
Definition pvoidvector.h:401
reverse_iterator rbegin()
Definition ivectorpointer.h:133
reference at(size_t i)
Definition ivectorpointer.h:243
void resize(size_t new_size)
Definition pvoidvector.h:186
void insert(const_iterator position, size_t n, parameter_t value)
Definition ivectorpointer.h:430
iterator erase(iterator i_element)
Definition ivectorpointer.h:455
iterator erase(const_iterator i_element)
Definition ivectorpointer.h:466
iterator end()
Definition ivectorpointer.h:97
reference emplace_back()
Definition ivectorpointer.h:365
ivector(T **p_buffer_, size_t MAX_SIZE_)
Constructor.
Definition ivectorpointer.h:545
const_reverse_iterator crbegin() const
Definition ivectorpointer.h:169
void pop_back()
Definition pvoidvector.h:436
iterator emplace(const_iterator position)
Emplaces a value to the vector at the specified position.
Definition ivectorpointer.h:409
reference back()
Definition pvoidvector.h:299
iterator end()
Definition pvoidvector.h:94
iterator begin()
Definition ivectorpointer.h:79
void uninitialized_resize(size_t new_size)
Definition pvoidvector.h:220
iterator insert(const_iterator position, parameter_t value)
Definition ivectorpointer.h:401
reference front()
Definition pvoidvector.h:279
pointer data()
Definition ivectorpointer.h:300
reference emplace_back(parameter_t value)
Definition ivectorpointer.h:378
pvoidvector(void **p_buffer_, size_t MAX_SIZE)
Constructor.
Definition pvoidvector.h:750
const_pointer data() const
Definition ivectorpointer.h:309
void push_back(value_type value)
Definition pvoidvector.h:412
const_iterator cend() const
Definition pvoidvector.h:121
iterator erase(const_iterator first, const_iterator last)
Definition ivectorpointer.h:480
const_iterator cbegin() const
Definition pvoidvector.h:112
size_type size() const
Definition vector.h:1040
iterator erase(iterator i_element)
Definition vector.h:911
ivector & operator=(const ivector &rhs)
Assignment operator.
Definition ivectorpointer.h:514
void clear()
Clears the vector.
Definition ivectorpointer.h:343
void swap(ivector< T * > &other)
Definition ivectorpointer.h:490
void resize(size_t new_size)
Definition ivectorpointer.h:189
reference at(size_t i)
Definition pvoidvector.h:256
Definition vector.h:71
Definition pvoidvector.h:55
Definition vector_base.h:66
bitset_ext
Definition absolute.h:40
ETL_CONSTEXPR14 bool operator==(const etl::array< T, SIZE > &lhs, const etl::array< T, SIZE > &rhs)
Definition array.h:1081
bool operator>(const etl::array< T, SIZE > &lhs, const etl::array< T, SIZE > &rhs)
Definition array.h:1133
bool operator>=(const etl::array< T, SIZE > &lhs, const etl::array< T, SIZE > &rhs)
Definition array.h:1147
ETL_CONSTEXPR14 bool operator!=(const etl::array< T, SIZE > &lhs, const etl::array< T, SIZE > &rhs)
Definition array.h:1093
ETL_NODISCARD ETL_CONSTEXPR14 etl::back_insert_iterator< TContainer > back_inserter(TContainer &container)
Creates a back_insert_iterator from a container.
Definition iterator.h:673
ETL_CONSTEXPR TContainer::size_type size(const TContainer &container)
Definition iterator.h:1192
bool operator<(const etl::array< T, SIZE > &lhs, const etl::array< T, SIZE > &rhs)
Definition array.h:1106
bool operator<=(const etl::array< T, SIZE > &lhs, const etl::array< T, SIZE > &rhs)
Definition array.h:1120