31#ifndef ETL_ARRAY_INCLUDED
32#define ETL_ARRAY_INCLUDED
40#include "static_assert.h"
59 array_exception(string_type reason_, string_type file_name_, numeric_type line_number_)
60 :
exception(reason_, file_name_, line_number_)
69 class array_out_of_range :
public array_exception
73 array_out_of_range(string_type file_name_, numeric_type line_number_)
74 : array_exception(
"array:range", file_name_, line_number_)
83 template <
typename T,
size_t SIZE_>
92 static ETL_CONSTANT
size_t SIZE = SIZE_;
95 typedef size_t size_type;
96 typedef ptrdiff_t difference_type;
98 typedef const T& const_reference;
100 typedef const T* const_pointer;
102 typedef const T* const_iterator;
103 typedef ETL_OR_STD::reverse_iterator<iterator> reverse_iterator;
104 typedef ETL_OR_STD::reverse_iterator<const_iterator> const_reverse_iterator;
114 ETL_NODISCARD ETL_CONSTEXPR14 reference
at(
size_t i) ETL_NOEXCEPT_EXPR(ETL_NOT_USING_EXCEPTIONS)
125 ETL_NODISCARD ETL_CONSTEXPR14 const_reference
at(
size_t i)
const ETL_NOEXCEPT_EXPR(ETL_NOT_USING_EXCEPTIONS)
137 ETL_NODISCARD ETL_CONSTEXPR14 reference
operator[](
size_t i) ETL_NOEXCEPT_EXPR(ETL_NOT_USING_EXCEPTIONS || ETL_NOT_CHECKING_INDEX_OPERATOR)
149 ETL_NODISCARD ETL_CONSTEXPR const_reference
operator[](
size_t i)
const ETL_NOEXCEPT_EXPR(ETL_NOT_USING_EXCEPTIONS || ETL_NOT_CHECKING_INDEX_OPERATOR)
152#if ETL_USING_CPP11 && ETL_NOT_USING_CPP14 && ETL_USING_EXCEPTIONS && ETL_CHECKING_INDEX_OPERATOR
164 ETL_NODISCARD ETL_CONSTEXPR14 reference
front() ETL_NOEXCEPT
166 ETL_STATIC_ASSERT(SIZE > 0,
"Array is empty.");
174 ETL_NODISCARD ETL_CONSTEXPR const_reference
front() const ETL_NOEXCEPT
176 ETL_STATIC_ASSERT(SIZE > 0,
"Array is empty.");
184 ETL_NODISCARD ETL_CONSTEXPR14 reference
back() ETL_NOEXCEPT
186 ETL_STATIC_ASSERT(SIZE > 0,
"Array is empty.");
194 ETL_NODISCARD ETL_CONSTEXPR const_reference
back() const ETL_NOEXCEPT
196 ETL_STATIC_ASSERT(SIZE > 0,
"Array is empty.");
204 ETL_NODISCARD ETL_CONSTEXPR14 pointer
data() ETL_NOEXCEPT
212 ETL_NODISCARD ETL_CONSTEXPR const_pointer
data() const ETL_NOEXCEPT
224 ETL_NODISCARD ETL_CONSTEXPR14 iterator
begin() ETL_NOEXCEPT
232 ETL_NODISCARD ETL_CONSTEXPR const_iterator
begin() const ETL_NOEXCEPT
240 ETL_NODISCARD ETL_CONSTEXPR const_iterator
cbegin() const ETL_NOEXCEPT
248 ETL_NODISCARD ETL_CONSTEXPR14 iterator
end() ETL_NOEXCEPT
256 ETL_NODISCARD ETL_CONSTEXPR const_iterator
end() const ETL_NOEXCEPT
272 ETL_NODISCARD ETL_CONSTEXPR14 reverse_iterator
rbegin() ETL_NOEXCEPT
274 return reverse_iterator(
end());
280 ETL_NODISCARD ETL_CONSTEXPR const_reverse_iterator
rbegin() const ETL_NOEXCEPT
282 return const_reverse_iterator(
end());
288 ETL_NODISCARD ETL_CONSTEXPR const_reverse_iterator
crbegin() const ETL_NOEXCEPT
290 return const_reverse_iterator(
end());
296 ETL_NODISCARD ETL_CONSTEXPR14 reverse_iterator
rend() ETL_NOEXCEPT
298 return reverse_iterator(
begin());
304 ETL_NODISCARD ETL_CONSTEXPR const_reverse_iterator
rend() const ETL_NOEXCEPT
306 return const_reverse_iterator(
begin());
312 ETL_NODISCARD ETL_CONSTEXPR const_reverse_iterator
crend() const ETL_NOEXCEPT
314 return const_reverse_iterator(
begin());
324 ETL_NODISCARD ETL_CONSTEXPR
bool empty() const ETL_NOEXCEPT
332 ETL_NODISCARD ETL_CONSTEXPR
size_t size() const ETL_NOEXCEPT
340 ETL_NODISCARD ETL_CONSTEXPR
size_t max_size() const ETL_NOEXCEPT
353 ETL_CONSTEXPR14
void fill(parameter_t value)
362 ETL_CONSTEXPR14
void swap(
array& other) ETL_NOEXCEPT_FROM(ETL_OR_STD::swap(etl::declval<T&>(), etl::declval<T&>()))
364 using ETL_OR_STD::swap;
366 for (
size_t i = 0UL; i < SIZE; ++i)
380 template <
typename TIterator>
381 iterator
assign(TIterator first,
const TIterator last)
394 template <
typename TIterator>
395 iterator
assign(TIterator first,
const TIterator last, parameter_t value)
401 etl::fill(p,
end(), value);
411 inline iterator
insert_at(
size_t position, parameter_t value)
423 iterator
insert(const_iterator position, parameter_t value)
427 iterator p = to_iterator(position);
429 etl::move_backward(p,
end() - 1,
end());
441 template <
typename TIterator>
442 inline iterator
insert_at(
size_t position, TIterator first,
const TIterator last)
455 template <
typename TIterator>
456 iterator
insert(const_iterator position, TIterator first,
const TIterator last)
460 iterator p = to_iterator(position);
463 size_t source_size =
static_cast<size_t>(etl::distance(first, last));
464 size_t destination_space =
static_cast<size_t>(etl::distance(position, cend()));
467 if (source_size < destination_space)
469 size_t length = SIZE - (
static_cast<size_t>(etl::distance(
begin(), p)) + source_size);
470 etl::move_backward(p, p + length,
end());
496 iterator
erase(const_iterator position)
500 iterator p = to_iterator(position);
501 etl::move(p + 1,
end(), p);
525 iterator
erase(const_iterator first, const_iterator last)
529 iterator p = to_iterator(first);
530 etl::move(last, cend(), p);
540 inline iterator
erase_at(
size_t position, parameter_t value)
553 iterator
erase(const_iterator position, parameter_t value)
557 iterator p = to_iterator(position);
559 etl::move(p + 1,
end(), p);
572 iterator
erase_range(
size_t first,
size_t last, parameter_t value)
586 iterator
erase(const_iterator first, const_iterator last, parameter_t value)
590 iterator p = to_iterator(first);
592 p = etl::move(last, cend(), p);
593 etl::fill(p,
end(), value);
595 return to_iterator(first);
606 iterator to_iterator(const_iterator itr)
const
608 return const_cast<iterator
>(itr);
612 template <
typename T,
size_t SIZE_>
613 ETL_CONSTANT
size_t array<T, SIZE_>::SIZE;
620 template <
typename T>
629 static ETL_CONSTANT
size_t SIZE = 0;
631 typedef T value_type;
632 typedef size_t size_type;
633 typedef ptrdiff_t difference_type;
634 typedef T& reference;
635 typedef const T& const_reference;
637 typedef const T* const_pointer;
639 typedef const T* const_iterator;
640 typedef ETL_OR_STD::reverse_iterator<iterator> reverse_iterator;
641 typedef ETL_OR_STD::reverse_iterator<const_iterator> const_reverse_iterator;
651 ETL_NODISCARD ETL_CONSTEXPR14 reference
at(
size_t) ETL_NOEXCEPT
660 ETL_NODISCARD ETL_CONSTEXPR14 const_reference
at(
size_t)
const ETL_NOEXCEPT
670 ETL_NODISCARD ETL_CONSTEXPR14 reference
operator[](
size_t) ETL_NOEXCEPT
680 ETL_NODISCARD ETL_CONSTEXPR const_reference
operator[](
size_t)
const ETL_NOEXCEPT
688 ETL_NODISCARD ETL_CONSTEXPR14 reference
front() ETL_NOEXCEPT
696 ETL_NODISCARD ETL_CONSTEXPR const_reference
front() const ETL_NOEXCEPT
704 ETL_NODISCARD ETL_CONSTEXPR14 reference
back() ETL_NOEXCEPT
712 ETL_NODISCARD ETL_CONSTEXPR const_reference
back()
const
720 ETL_NODISCARD ETL_CONSTEXPR14 pointer
data() ETL_NOEXCEPT
728 ETL_NODISCARD ETL_CONSTEXPR const_pointer
data() const ETL_NOEXCEPT
740 ETL_NODISCARD ETL_CONSTEXPR14 iterator
begin() ETL_NOEXCEPT
748 ETL_NODISCARD ETL_CONSTEXPR const_iterator
begin() const ETL_NOEXCEPT
750 return const_iterator();
756 ETL_NODISCARD ETL_CONSTEXPR const_iterator
cbegin() const ETL_NOEXCEPT
758 return const_iterator();
764 ETL_NODISCARD ETL_CONSTEXPR14 iterator
end() ETL_NOEXCEPT
772 ETL_NODISCARD ETL_CONSTEXPR const_iterator
end() const ETL_NOEXCEPT
774 return const_iterator();
788 ETL_NODISCARD ETL_CONSTEXPR14 reverse_iterator
rbegin() ETL_NOEXCEPT
790 return reverse_iterator(
end());
796 ETL_NODISCARD ETL_CONSTEXPR const_reverse_iterator
rbegin() const ETL_NOEXCEPT
798 return const_reverse_iterator(
end());
804 ETL_NODISCARD ETL_CONSTEXPR const_reverse_iterator
crbegin() const ETL_NOEXCEPT
806 return const_reverse_iterator(
end());
812 ETL_NODISCARD ETL_CONSTEXPR14 reverse_iterator
rend() ETL_NOEXCEPT
814 return reverse_iterator(
begin());
820 ETL_NODISCARD ETL_CONSTEXPR const_reverse_iterator
rend() const ETL_NOEXCEPT
822 return const_reverse_iterator(
begin());
828 ETL_NODISCARD ETL_CONSTEXPR const_reverse_iterator
crend() const ETL_NOEXCEPT
830 return const_reverse_iterator(
begin());
840 ETL_NODISCARD ETL_CONSTEXPR
bool empty() const ETL_NOEXCEPT
848 ETL_NODISCARD ETL_CONSTEXPR
size_t size() const ETL_NOEXCEPT
856 ETL_NODISCARD ETL_CONSTEXPR
size_t max_size() const ETL_NOEXCEPT
869 ETL_CONSTEXPR14
void fill(parameter_t) ETL_NOEXCEPT
889 template <
typename TIterator>
890 iterator
assign(TIterator,
const TIterator) ETL_NOEXCEPT
903 template <
typename TIterator>
904 iterator
assign(TIterator,
const TIterator, parameter_t) ETL_NOEXCEPT
914 inline iterator
insert_at(
size_t, parameter_t) ETL_NOEXCEPT
924 iterator
insert(const_iterator, parameter_t) ETL_NOEXCEPT
935 template <
typename TIterator>
936 inline iterator
insert_at(
size_t, TIterator,
const TIterator) ETL_NOEXCEPT
947 template <
typename TIterator>
948 iterator
insert(const_iterator, TIterator,
const TIterator) ETL_NOEXCEPT
968 iterator
erase(const_iterator) ETL_NOEXCEPT
990 iterator
erase(const_iterator, const_iterator) ETL_NOEXCEPT
1001 inline iterator
erase_at(
size_t, parameter_t) ETL_NOEXCEPT
1012 iterator
erase(const_iterator, parameter_t) ETL_NOEXCEPT
1035 iterator
erase(const_iterator, const_iterator, parameter_t) ETL_NOEXCEPT
1045 template <
typename... T>
1046 array(T...) -> array<
typename etl::common_type<T...>
::type,
sizeof...(T)>;
1052#if ETL_HAS_INITIALIZER_LIST
1053 template <
typename T,
typename... TValues>
1054 constexpr auto make_array(TValues&&... values) ETL_NOEXCEPT ->
etl::array<T,
sizeof...(TValues)>
1056 return {etl::forward<T>(values)...};
1065 template <
typename T, const
size_t SIZE>
1077 template <
typename T,
size_t SIZE>
1080 return etl::equal(lhs.
cbegin(), lhs.cend(), rhs.
cbegin());
1089 template <
typename T,
size_t SIZE>
1092 return !(lhs == rhs);
1102 template <
typename T,
size_t SIZE>
1105 return etl::lexicographical_compare(lhs.
cbegin(), lhs.cend(), rhs.
cbegin(), rhs.cend());
1116 template <
typename T,
size_t SIZE>
1119 return !(lhs > rhs);
1128 template <
typename T,
size_t SIZE>
1143 template <
typename T,
size_t SIZE>
1146 return !(lhs < rhs);
1157 template <
size_t Index,
typename T,
size_t Size>
1160 ETL_STATIC_ASSERT(Index < Size,
"Index out of bounds");
1172 template <
size_t Index,
typename T,
size_t Size>
1175 ETL_STATIC_ASSERT(Index < Size,
"Index out of bounds");
ETL_CONSTEXPR14 etl::enable_if< etl::is_random_iterator< TInputIterator >::value &&etl::is_random_iterator< TOutputIterator >::value, TOutputIterator >::type copy_s(TInputIterator i_begin, TInputIterator i_end, TOutputIterator o_begin, TOutputIterator o_end)
Definition algorithm.h:2675
ETL_NODISCARD ETL_CONSTEXPR14 reference at(size_t) ETL_NOEXCEPT
Definition array.h:651
ETL_NODISCARD ETL_CONSTEXPR14 reference operator[](size_t i) ETL_NOEXCEPT_EXPR(ETL_NOT_USING_EXCEPTIONS||ETL_NOT_CHECKING_INDEX_OPERATOR)
Definition array.h:137
ETL_NODISCARD ETL_CONSTEXPR const_reverse_iterator rend() const ETL_NOEXCEPT
Returns a const reverse iterator to the end of the array.
Definition array.h:820
ETL_NODISCARD ETL_CONSTEXPR14 reference operator[](size_t) ETL_NOEXCEPT
Definition array.h:670
iterator erase(const_iterator first, const_iterator last)
Definition array.h:525
ETL_NODISCARD ETL_CONSTEXPR14 reverse_iterator rend() ETL_NOEXCEPT
Returns a reverse iterator to the end of the array.
Definition array.h:296
iterator erase_at(size_t) ETL_NOEXCEPT
Definition array.h:958
ETL_NODISCARD ETL_CONSTEXPR const_reference front() const ETL_NOEXCEPT
Returns a const reference to the first element.
Definition array.h:696
ETL_NODISCARD ETL_CONSTEXPR const_reference operator[](size_t) const ETL_NOEXCEPT
Definition array.h:680
iterator assign(TIterator, const TIterator) ETL_NOEXCEPT
Definition array.h:890
ETL_NODISCARD ETL_CONSTEXPR14 reference front() ETL_NOEXCEPT
Returns a reference to the first element.
Definition array.h:164
ETL_NODISCARD ETL_CONSTEXPR const_pointer data() const ETL_NOEXCEPT
Returns a const pointer to the first element of the internal buffer.
Definition array.h:728
ETL_NODISCARD ETL_CONSTEXPR const_reverse_iterator crbegin() const ETL_NOEXCEPT
Returns a const reverse iterator to the reverse beginning of the array.
Definition array.h:288
ETL_NODISCARD ETL_CONSTEXPR const_reverse_iterator rbegin() const ETL_NOEXCEPT
Returns a const reverse iterator to the reverse beginning of the array.
Definition array.h:280
ETL_NODISCARD ETL_CONSTEXPR14 iterator end() ETL_NOEXCEPT
Returns an iterator to the end of the array.
Definition array.h:764
ETL_NODISCARD ETL_CONSTEXPR14 iterator begin() ETL_NOEXCEPT
Returns an iterator to the beginning of the array.
Definition array.h:224
delegate_type _buffer[SIZE]
Definition array.h:599
ETL_NODISCARD ETL_CONSTEXPR const_iterator begin() const ETL_NOEXCEPT
Returns a const iterator to the beginning of the array.
Definition array.h:232
iterator insert_at(size_t, parameter_t) ETL_NOEXCEPT
Definition array.h:914
ETL_NODISCARD ETL_CONSTEXPR const_reverse_iterator crend() const ETL_NOEXCEPT
Returns a const reverse iterator to the end of the array.
Definition array.h:828
iterator erase_range(size_t, size_t) ETL_NOEXCEPT
Definition array.h:979
ETL_NODISCARD ETL_CONSTEXPR const_reference operator[](size_t i) const ETL_NOEXCEPT_EXPR(ETL_NOT_USING_EXCEPTIONS||ETL_NOT_CHECKING_INDEX_OPERATOR)
Definition array.h:149
ETL_NODISCARD ETL_CONSTEXPR14 pointer data() ETL_NOEXCEPT
Returns a pointer to the first element of the internal buffer.
Definition array.h:204
iterator erase_range(size_t, size_t, parameter_t) ETL_NOEXCEPT
Definition array.h:1024
iterator erase_range(size_t first, size_t last)
Definition array.h:512
ETL_CONSTEXPR14 void fill(parameter_t) ETL_NOEXCEPT
Definition array.h:869
ETL_NODISCARD ETL_CONSTEXPR const_reference back() const ETL_NOEXCEPT
Returns a const reference to the last element.
Definition array.h:194
ETL_NODISCARD ETL_CONSTEXPR14 reference back() ETL_NOEXCEPT
Returns a reference to the last element.
Definition array.h:184
ETL_NODISCARD ETL_CONSTEXPR14 iterator begin() ETL_NOEXCEPT
Returns an iterator to the beginning of the array.
Definition array.h:740
ETL_CONSTEXPR14 void fill(parameter_t value)
Definition array.h:353
iterator insert_at(size_t, TIterator, const TIterator) ETL_NOEXCEPT
Definition array.h:936
iterator erase(const_iterator) ETL_NOEXCEPT
Definition array.h:968
iterator insert_at(size_t position, parameter_t value)
Definition array.h:411
iterator assign(TIterator, const TIterator, parameter_t) ETL_NOEXCEPT
Definition array.h:904
iterator erase_range(size_t first, size_t last, parameter_t value)
Definition array.h:572
ETL_NODISCARD ETL_CONSTEXPR14 const_reference at(size_t i) const ETL_NOEXCEPT_EXPR(ETL_NOT_USING_EXCEPTIONS)
Definition array.h:125
ETL_NODISCARD ETL_CONSTEXPR const_iterator end() const ETL_NOEXCEPT
Returns a const iterator to the end of the array.
Definition array.h:256
iterator insert(const_iterator, parameter_t) ETL_NOEXCEPT
Definition array.h:924
ETL_NODISCARD ETL_CONSTEXPR size_t max_size() const ETL_NOEXCEPT
Returns the maximum possible size of the array.
Definition array.h:856
ETL_NODISCARD ETL_CONSTEXPR const_iterator end() const ETL_NOEXCEPT
Returns a const iterator to the end of the array.
Definition array.h:772
ETL_NODISCARD ETL_CONSTEXPR size_t size() const ETL_NOEXCEPT
Returns the size of the array.
Definition array.h:848
ETL_NODISCARD ETL_CONSTEXPR const_reverse_iterator crbegin() const ETL_NOEXCEPT
Returns a const reverse iterator to the reverse beginning of the array.
Definition array.h:804
ETL_NODISCARD ETL_CONSTEXPR14 const_reference at(size_t) const ETL_NOEXCEPT
Definition array.h:660
ETL_CONSTEXPR14 void swap(array &) ETL_NOEXCEPT
Definition array.h:877
iterator erase_at(size_t position)
Definition array.h:484
ETL_NODISCARD ETL_CONSTEXPR const_reference back() const
Returns a const reference to the last element.
Definition array.h:712
iterator erase(const_iterator first, const_iterator last, parameter_t value)
Definition array.h:586
iterator erase(const_iterator position, parameter_t value)
Definition array.h:553
iterator insert(const_iterator, TIterator, const TIterator) ETL_NOEXCEPT
Definition array.h:948
iterator erase(const_iterator, parameter_t) ETL_NOEXCEPT
Definition array.h:1012
ETL_NODISCARD ETL_CONSTEXPR14 pointer data() ETL_NOEXCEPT
Returns a pointer to the first element of the internal buffer.
Definition array.h:720
ETL_NODISCARD ETL_CONSTEXPR const_iterator cbegin() const ETL_NOEXCEPT
Returns a const iterator to the beginning of the array.
Definition array.h:756
iterator erase(const_iterator, const_iterator) ETL_NOEXCEPT
Definition array.h:990
ETL_NODISCARD ETL_CONSTEXPR14 iterator end() ETL_NOEXCEPT
Returns an iterator to the end of the array.
Definition array.h:248
iterator insert(const_iterator position, parameter_t value)
Definition array.h:423
ETL_NODISCARD ETL_CONSTEXPR const_reverse_iterator crend() const ETL_NOEXCEPT
Returns a const reverse iterator to the end of the array.
Definition array.h:312
ETL_NODISCARD ETL_CONSTEXPR const_iterator begin() const ETL_NOEXCEPT
Returns a const iterator to the beginning of the array.
Definition array.h:748
ETL_NODISCARD ETL_CONSTEXPR bool empty() const ETL_NOEXCEPT
Returns true if the array size is zero.
Definition array.h:324
iterator erase_at(size_t, parameter_t) ETL_NOEXCEPT
Definition array.h:1001
ETL_NODISCARD ETL_CONSTEXPR const_pointer data() const ETL_NOEXCEPT
Returns a const pointer to the first element of the internal buffer.
Definition array.h:212
ETL_NODISCARD ETL_CONSTEXPR size_t size() const ETL_NOEXCEPT
Returns the size of the array.
Definition array.h:332
ETL_NODISCARD ETL_CONSTEXPR14 reference at(size_t i) ETL_NOEXCEPT_EXPR(ETL_NOT_USING_EXCEPTIONS)
Definition array.h:114
ETL_CONSTEXPR14 void swap(array &other) ETL_NOEXCEPT_FROM(ETL_OR_STD
Definition array.h:362
iterator insert(const_iterator position, TIterator first, const TIterator last)
Definition array.h:456
iterator assign(TIterator first, const TIterator last)
Definition array.h:381
ETL_NODISCARD ETL_CONSTEXPR const_reverse_iterator rbegin() const ETL_NOEXCEPT
Returns a const reverse iterator to the reverse beginning of the array.
Definition array.h:796
ETL_NODISCARD ETL_CONSTEXPR14 reference front() ETL_NOEXCEPT
Returns a reference to the first element.
Definition array.h:688
ETL_NODISCARD ETL_CONSTEXPR const_iterator cbegin() const ETL_NOEXCEPT
Returns a const iterator to the beginning of the array.
Definition array.h:240
iterator erase(const_iterator position)
Definition array.h:496
ETL_NODISCARD ETL_CONSTEXPR14 reference back() ETL_NOEXCEPT
Returns a reference to the last element.
Definition array.h:704
iterator assign(TIterator first, const TIterator last, parameter_t value)
Definition array.h:395
iterator erase(const_iterator, const_iterator, parameter_t) ETL_NOEXCEPT
Definition array.h:1035
ETL_NODISCARD ETL_CONSTEXPR14 reverse_iterator rend() ETL_NOEXCEPT
Returns a reverse iterator to the end of the array.
Definition array.h:812
iterator erase_at(size_t position, parameter_t value)
Definition array.h:540
ETL_NODISCARD ETL_CONSTEXPR const_reference front() const ETL_NOEXCEPT
Returns a const reference to the first element.
Definition array.h:174
iterator insert_at(size_t position, TIterator first, const TIterator last)
Definition array.h:442
ETL_NODISCARD ETL_CONSTEXPR const_reverse_iterator rend() const ETL_NOEXCEPT
Returns a const reverse iterator to the end of the array.
Definition array.h:304
ETL_NODISCARD ETL_CONSTEXPR bool empty() const ETL_NOEXCEPT
Returns true if the array size is zero.
Definition array.h:840
ETL_NODISCARD ETL_CONSTEXPR size_t max_size() const ETL_NOEXCEPT
Returns the maximum possible size of the array.
Definition array.h:340
#define ETL_ASSERT(b, e)
Definition error_handler.h:511
ETL_EXCEPTION_CONSTEXPR exception(string_type reason_, string_type, numeric_type)
Constructor.
Definition exception.h:81
ETL_CONSTEXPR14 void swap(etl::typed_storage_ext< T > &lhs, etl::typed_storage_ext< T > &rhs) ETL_NOEXCEPT
Swap two etl::typed_storage_ext.
Definition alignment.h:856
ETL_CONSTEXPR14 bool operator==(const etl::array< T, SIZE > &lhs, const etl::array< T, SIZE > &rhs)
Definition array.h:1078
bool operator>(const etl::array< T, SIZE > &lhs, const etl::array< T, SIZE > &rhs)
Definition array.h:1130
bool operator>=(const etl::array< T, SIZE > &lhs, const etl::array< T, SIZE > &rhs)
Definition array.h:1144
ETL_CONSTEXPR14 bool operator!=(const etl::array< T, SIZE > &lhs, const etl::array< T, SIZE > &rhs)
Definition array.h:1090
T & get(array< T, Size > &a)
Definition array.h:1158
TContainer::const_iterator cend(const TContainer &container)
Definition iterator.h:1186
bool operator<(const etl::array< T, SIZE > &lhs, const etl::array< T, SIZE > &rhs)
Definition array.h:1103
bool operator<=(const etl::array< T, SIZE > &lhs, const etl::array< T, SIZE > &rhs)
Definition array.h:1117
etl::conditional< etl::is_fundamental< T >::value||etl::is_pointer< T >::value, T, constT & >::type type
By default fundamental and pointer types are passed by value.
Definition parameter_type.h:46