mirror of https://github.com/ARMmbed/mbed-os.git
Add begin, end, rbegin and rend iterator functions to Span
parent
13efd1af38
commit
dfa8ea714d
100
platform/Span.h
100
platform/Span.h
|
@ -233,6 +233,16 @@ struct Span {
|
|||
*/
|
||||
typedef element_type &reference;
|
||||
|
||||
/**
|
||||
* Iterator to an ElementType
|
||||
*/
|
||||
typedef pointer iterator;
|
||||
|
||||
/**
|
||||
* Reverse iterator to an ElementType
|
||||
*/
|
||||
typedef std::reverse_iterator<iterator> reverse_iterator;
|
||||
|
||||
/**
|
||||
* Size of the Extent; -1 if dynamic.
|
||||
*/
|
||||
|
@ -349,6 +359,46 @@ struct Span {
|
|||
return size() == 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return an iterator to the first element of the sequence.
|
||||
*
|
||||
* @return An iterator to the first element of the sequence.
|
||||
*/
|
||||
iterator begin() const
|
||||
{
|
||||
return _data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return an iterator to the element following the last element of the sequence.
|
||||
*
|
||||
* @return An iterator to the element following the last element of the sequence.
|
||||
*/
|
||||
iterator end() const
|
||||
{
|
||||
return _data + Extent;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a reverse_iterator to the first element of the reversed sequence.
|
||||
*
|
||||
* @return A reverse_iterator to the first element of the reversed sequence.
|
||||
*/
|
||||
reverse_iterator rbegin() const
|
||||
{
|
||||
return reverse_iterator(end());
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a reverse_iterator to the element following the last element of the reversed sequence.
|
||||
*
|
||||
* @return A reverse_iterator to the element following the last element of the reversed sequence.
|
||||
*/
|
||||
reverse_iterator rend() const
|
||||
{
|
||||
return reverse_iterator(begin());
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a reference to the element at position @p index.
|
||||
*
|
||||
|
@ -534,6 +584,16 @@ struct Span<ElementType, SPAN_DYNAMIC_EXTENT> {
|
|||
*/
|
||||
typedef element_type &reference;
|
||||
|
||||
/**
|
||||
* Iterator to an ElementType
|
||||
*/
|
||||
typedef pointer iterator;
|
||||
|
||||
/**
|
||||
* Reverse iterator to an ElementType
|
||||
*/
|
||||
typedef std::reverse_iterator<iterator> reverse_iterator;
|
||||
|
||||
/**
|
||||
* Size of the Extent; -1 if dynamic.
|
||||
*/
|
||||
|
@ -644,6 +704,46 @@ struct Span<ElementType, SPAN_DYNAMIC_EXTENT> {
|
|||
return size() == 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return an iterator to the first element of the sequence.
|
||||
*
|
||||
* @return An iterator to the first element of the sequence.
|
||||
*/
|
||||
iterator begin() const
|
||||
{
|
||||
return _data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return an iterator to the element following the last element of the sequence.
|
||||
*
|
||||
* @return An iterator to the element following the last element of the sequence.
|
||||
*/
|
||||
iterator end() const
|
||||
{
|
||||
return _data + _size;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a reverse_iterator to the first element of the reversed sequence.
|
||||
*
|
||||
* @return A reverse_iterator to the first element of the reversed sequence.
|
||||
*/
|
||||
reverse_iterator rbegin() const
|
||||
{
|
||||
return reverse_iterator(end());
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a reverse_iterator to the element following the last element of the reversed sequence.
|
||||
*
|
||||
* @return A reverse_iterator to the element following the last element of the reversed sequence.
|
||||
*/
|
||||
reverse_iterator rend() const
|
||||
{
|
||||
return reverse_iterator(begin());
|
||||
}
|
||||
|
||||
/**
|
||||
* Access to an element of the sequence.
|
||||
*
|
||||
|
|
Loading…
Reference in New Issue