#include "wpi/iterator_range.h"
#include <cstddef>
#include <iterator>
#include <type_traits>
#include <utility>
Go to the source code of this file.
|
class | wpi::iterator_facade_base< DerivedT, IteratorCategoryT, T, DifferenceTypeT, PointerT, ReferenceT > |
| CRTP base class which implements the entire standard iterator facade in terms of a minimal subset of the interface. More...
|
|
class | wpi::iterator_facade_base< DerivedT, IteratorCategoryT, T, DifferenceTypeT, PointerT, ReferenceT >::ReferenceProxy |
| A proxy object for computing a reference via indirecting a copy of an iterator. More...
|
|
class | wpi::iterator_facade_base< DerivedT, IteratorCategoryT, T, DifferenceTypeT, PointerT, ReferenceT >::PointerProxy |
| A proxy object for computing a pointer via indirecting a copy of a reference. More...
|
|
class | wpi::iterator_adaptor_base< DerivedT, WrappedIteratorT, IteratorCategoryT, T, DifferenceTypeT, PointerT, ReferenceT > |
| CRTP base class for adapting an iterator to a different type. More...
|
|
struct | wpi::pointee_iterator< WrappedIteratorT, T > |
| An iterator type that allows iterating over the pointees via some other iterator. More...
|
|
class | wpi::pointer_iterator< WrappedIteratorT, T > |
|
|
template<typename WrappedIteratorT , typename T1 = std::remove_reference_t<decltype( **std::declval<WrappedIteratorT>())>, typename T2 = std::add_pointer_t<T1>> |
using | wpi::raw_pointer_iterator = pointer_iterator< pointee_iterator< WrappedIteratorT, T1 >, T2 > |
|
|
template<typename RangeT , typename WrappedIteratorT = decltype(std::begin(std::declval<RangeT>()))> |
iterator_range< pointee_iterator< WrappedIteratorT > > | wpi::make_pointee_range (RangeT &&Range) |
|
template<typename RangeT , typename WrappedIteratorT = decltype(std::begin(std::declval<RangeT>()))> |
iterator_range< pointer_iterator< WrappedIteratorT > > | wpi::make_pointer_range (RangeT &&Range) |
|