Nugget
|
#include <iterator.h>
Public Types | |
typedef Iterator | iterator_type |
typedef iterator_type | wrapped_iterator_type |
typedef iterator_traits< Iterator > | traits_type |
typedef traits_type::iterator_category | iterator_category |
typedef traits_type::value_type | value_type |
typedef traits_type::difference_type | difference_type |
typedef Iterator | pointer |
using | reference = conditional_t< is_reference< WrappedIteratorReference >::value, remove_reference_t< WrappedIteratorReference > &&, WrappedIteratorReference > |
Public Member Functions | |
move_iterator (iterator_type mi) | |
template<typename U > | |
move_iterator (const move_iterator< U > &mi) | |
iterator_type | base () const |
reference | operator* () const |
pointer | operator-> () const |
move_iterator & | operator++ () |
move_iterator | operator++ (int) |
move_iterator & | operator-- () |
move_iterator | operator-- (int) |
move_iterator | operator+ (difference_type n) const |
move_iterator & | operator+= (difference_type n) |
move_iterator | operator- (difference_type n) const |
move_iterator & | operator-= (difference_type n) |
reference | operator[] (difference_type n) const |
Protected Attributes | |
iterator_type | mIterator |
unwrap_reverse_iterator
Returns Iterator::get_base() if it's a reverse_iterator, else returns Iterator as-is.
Example usage: vector<int> intVector; eastl::reverse_iterator<vector<int>::iterator> reverseIterator(intVector.begin()); vector<int>::iterator it = unwrap_reverse_iterator(reverseIterator);
Disabled until there is considered a good use for it. template <typename Iterator> inline typename eastl::is_iterator_wrapper_helper<Iterator, eastl::is_reverse_iterator<Iterator>::value>::iterator_type unwrap_reverse_iterator(Iterator it) { return eastl::is_iterator_wrapper_helper<Iterator, eastl::is_reverse_iterator<Iterator>::value>::get_base(it); } move_iterator
From the C++11 Standard, section 24.5.3.1: Class template move_iterator is an iterator adaptor with the same behavior as the underlying iterator except that its dereference operator implicitly converts the value returned by the underlying iterator's dereference operator to an rvalue reference. Some generic algorithms can be called with move iterators to replace copying with moving.