Go to the documentation of this file.
9 #ifndef LLDB_UTILITY_ITERABLE_H
10 #define LLDB_UTILITY_ITERABLE_H
21 template <
typename I,
typename E> E
vector_adapter(I &iter) {
return *iter; }
23 template <
typename I,
typename E> E
list_adapter(I &iter) {
return *iter; }
25 template <
typename C,
typename E, E (*A)(
typename C::const_iterator &)>
32 :
m_iter(backing_iterator) {}
64 E
operator[](
typename BackingIterator::difference_type offset) {
82 operator+=(
typename BackingIterator::difference_type offset) {
88 operator-=(
typename BackingIterator::difference_type offset) {
95 operator+(
typename BackingIterator::difference_type offset) {
100 operator-(
typename BackingIterator::difference_type offset) {
113 template <
typename C1,
typename E1, E1 (*A1)(
typename C1::const_iterator &)>
115 operator+(
typename C1::const_iterator::difference_type,
118 template <
typename C1,
typename E1, E1 (*A1)(
typename C1::const_iterator &)>
119 friend typename C1::const_iterator::difference_type
123 template <
typename C1,
typename E1, E1 (*A1)(
typename C1::const_iterator &)>
131 template <
typename C,
typename E, E (*A)(
typename C::const_iterator &)>
136 return rhs.operator+(offset);
139 template <
typename C,
typename E, E (*A)(
typename C::const_iterator &)>
140 typename AdaptedConstIterator<C, E, A>::BackingIterator::difference_type
146 template <
typename C,
typename E, E (*A)(
typename C::const_iterator &)>
152 template <
typename C,
typename E, E (*A)(
typename C::const_iterator &)>
169 template <
typename C,
typename E, E (*A)(
typename C::const_iterator &),
180 rhs.m_mutex =
nullptr;
189 MutexType *m_mutex =
nullptr;
197 #endif // LLDB_UTILITY_ITERABLE_H
LockingAdaptedIterable(const C &container, MutexType &mutex)
~AdaptedConstIterator()=default
friend void swap(AdaptedConstIterator< C1, E1, A1 > &, AdaptedConstIterator< C1, E1, A1 > &)
~LockingAdaptedIterable()
void swap(AdaptedConstIterator< C, E, A > &lhs, AdaptedConstIterator< C, E, A > &rhs)
E vector_adapter(I &iter)
bool operator==(const AdaptedConstIterator &rhs)
AdaptedConstIterator & operator-=(typename BackingIterator::difference_type offset)
bool operator<(AdaptedConstIterator &rhs)
C::const_iterator BackingIterator
AdaptedConstIterator & operator++()
AdaptedConstIterator operator+(typename BackingIterator::difference_type offset)
AdaptedConstIterator operator-(typename BackingIterator::difference_type offset)
AdaptedConstIterator & operator+=(typename BackingIterator::difference_type offset)
AdaptedConstIterator< C, E, A >::BackingIterator::difference_type operator-(AdaptedConstIterator< C, E, A > &lhs, AdaptedConstIterator< C, E, A > &rhs)
AdaptedIterable(const C &container)
AdaptedConstIterator< C, E, A > begin()
AdaptedConstIterator & operator=(const AdaptedConstIterator &rhs)
bool operator!=(const AdaptedConstIterator &rhs)
AdaptedConstIterator< C, E, A > operator+(typename AdaptedConstIterator< C, E, A >::BackingIterator::difference_type offset, AdaptedConstIterator< C, E, A > &rhs)
AdaptedConstIterator< C, E, A > end()
bool operator>=(AdaptedConstIterator &rhs)
bool operator>(AdaptedConstIterator &rhs)
AdaptedConstIterator & operator--()
AdaptedConstIterator(const AdaptedConstIterator &rhs)
A class that represents a running process on the host machine.
LockingAdaptedIterable(LockingAdaptedIterable &&rhs)
AdaptedConstIterator(BackingIterator backing_iterator)
E operator[](typename BackingIterator::difference_type offset)
bool operator<=(AdaptedConstIterator &rhs)