109 template <
typename TIter>
117 template <std::
size_t TN>
125 template <std::
size_t TN>
133 template <
typename TIter>
136 m_len(
static_cast<std::size_t
>(std::distance(first, last)))
148 template <
std::
size_t TN>
157 template <std::
size_t TN>
180 return begin() + m_len;
192 return std::reverse_iterator<const_iterator>(
end());
204 return std::reverse_iterator<const_iterator>(
begin());
238 return m_data[m_len - 1U];
255 constexpr bool empty() const noexcept
264 std::advance(m_data, n);
278 std::swap(m_data, other.m_data);
279 std::swap(m_len, other.m_len);
298 return std::lexicographical_compare(view1.begin(), view1.end(), view2.begin(), view2.end());
306 return !(view2 < view1);
314 return (view2 < view1);
322 return !(view1 < view2);
331 (view1.size() == view2.size()) &&
332 std::equal(view1.begin(), view1.end(), view2.begin());
340 return !(view1 == view2);
This file contains classes required for generic custom assertion functionality.
#define COMMS_ASSERT(expr)
Generic assert macro.
Definition Assert.h:170
Describes an object that can refer to a constant contiguous sequence of other objects.
Definition ArrayView.h:32
const_iterator ConstIterator
Same as const_iterator.
Definition ArrayView.h:75
~ArrayView() noexcept=default
Destructor.
const_reference at(size_type pos) const
Element access with range check.
Definition ArrayView.h:221
bool operator!=(const ArrayView< T > &view1, const ArrayView< T > &view2) noexcept
Inequality compare between the views.
Definition ArrayView.h:338
constexpr const_iterator begin() const noexcept
Iterator to begining of the sequence.
Definition ArrayView.h:166
pointer Pointer
Same as pointer.
Definition ArrayView.h:44
reverse_iterator ReverseIterator
Same as reverse_iterator.
Definition ArrayView.h:93
void remove_prefix(size_type n)
Narrow the view by skipping number of elements at the beginning.
Definition ArrayView.h:262
bool operator<(const ArrayView< T > &view1, const ArrayView< T > &view2) noexcept
Lexicographical compare between the views.
Definition ArrayView.h:296
bool operator<=(const ArrayView< T > &view1, const ArrayView< T > &view2) noexcept
Lexicographical compare between the views.
Definition ArrayView.h:304
ArrayView & operator=(T(&data)[TN])
Assign array of elements with known size.
Definition ArrayView.h:158
const_reverse_iterator crend() const noexcept
Reverse iterator to the beginning of the sequence.
Definition ArrayView.h:208
const_iterator iterator
Same as const_iterator.
Definition ArrayView.h:78
constexpr const_iterator end() const noexcept
Iterator to the end of the sequence.
Definition ArrayView.h:178
ArrayView() noexcept=default
Default constructor.
value_type ValueType
Same as value_type.
Definition ArrayView.h:38
bool operator>=(const ArrayView< T > &view1, const ArrayView< T > &view2) noexcept
Lexicographical compare between the views.
Definition ArrayView.h:320
constexpr size_type size() const noexcept
Get number of element in the view.
Definition ArrayView.h:242
std::reverse_iterator< const_iterator > const_reverse_iterator
Same as std::reverse_iterator<const_iterator>
Definition ArrayView.h:84
iterator Iterator
Same as iterator.
Definition ArrayView.h:81
std::size_t size_type
Equal to std::size_t.
Definition ArrayView.h:65
T * pointer
Pointer to the single element (T*)
Definition ArrayView.h:41
reverse_iterator rend() const noexcept
Reverse iterator to the beginning of the sequence.
Definition ArrayView.h:202
void remove_suffix(size_type n)
Narrow the view by dropping number of elements at the end.
Definition ArrayView.h:270
constexpr const_reference operator[](size_type pos) const
Element access operator.
Definition ArrayView.h:214
ArrayView(TIter iter, size_type len) noexcept
Constructor.
Definition ArrayView.h:110
const_reverse_iterator ConstReverseIterator
Same as const_reverse_iterator.
Definition ArrayView.h:87
reference Reference
Same as reference.
Definition ArrayView.h:56
bool operator>(const ArrayView< T > &view1, const ArrayView< T > &view2) noexcept
Lexicographical compare between the views.
Definition ArrayView.h:312
constexpr size_type length() const noexcept
Same as ref size()
Definition ArrayView.h:248
const_reference ConstReference
Same as const_reference.
Definition ArrayView.h:62
constexpr bool empty() const noexcept
Check the view is empty.
Definition ArrayView.h:255
ArrayView(const T(&data)[TN]) noexcept
Construct out of array of elements with known size.
Definition ArrayView.h:118
constexpr const_iterator cend() const noexcept
Iterator to the end of the sequence.
Definition ArrayView.h:184
bool operator==(const ArrayView< T > &view1, const ArrayView< T > &view2) noexcept
Equality compare between the views.
Definition ArrayView.h:328
void swap(ArrayView &other) noexcept
Swap contents of two views.
Definition ArrayView.h:276
const_reverse_iterator reverse_iterator
Same as const_reverse_iterator.
Definition ArrayView.h:90
size_type SizeType
Same as size_type;.
Definition ArrayView.h:68
const_pointer data() const
Returns a pointer to the beginning of the underlying sequence.
Definition ArrayView.h:283
const_pointer const_iterator
Implementation defined constant RandomAccessIterator and ContiguousIterator whose value_type is T.
Definition ArrayView.h:72
const_pointer ConstPointer
Same as const_pointer.
Definition ArrayView.h:50
ArrayView(TIter first, TIter last) noexcept
Construct out of iterators rande.
Definition ArrayView.h:134
T & reference
Reference to an element (T&)
Definition ArrayView.h:53
ArrayView(T(&data)[TN]) noexcept
Construct out of array of elements with known size.
Definition ArrayView.h:126
T value_type
Type of the single element.
Definition ArrayView.h:35
constexpr const_iterator cbegin() const noexcept
Iterator to begining of the sequence.
Definition ArrayView.h:172
const_reverse_iterator crbegin() const noexcept
Reverse iterator to the end of the sequence.
Definition ArrayView.h:196
const T & const_reference
Reference to a const element (const T&)
Definition ArrayView.h:59
const_reverse_iterator rbegin() const noexcept
Reverse iterator to the end of the sequence.
Definition ArrayView.h:190
const T * const_pointer
Pointer to the constant element (const T*)
Definition ArrayView.h:47
constexpr const_reference front() const
Access the first element.
Definition ArrayView.h:229
constexpr const_reference back() const
Access the last element.
Definition ArrayView.h:236
Main namespace for all classes / functions of COMMS library.