9#ifndef LLDB_UTILITY_ITERABLE_H
10#define LLDB_UTILITY_ITERABLE_H
23template <
typename I,
typename E> E
list_adapter(I &iter) {
return *iter; }
25template <
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 &)>
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 &)>
131template <
typename C,
typename E, E (*A)(
typename C::const_iterator &)>
136 return rhs.operator+(offset);
139template <
typename C,
typename E, E (*A)(
typename C::const_iterator &)>
140typename AdaptedConstIterator<C, E, A>::BackingIterator::difference_type
146template <
typename C,
typename E, E (*A)(
typename C::const_iterator &)>
152template <
typename C,
typename E, E (*A)(
typename C::const_iterator &)>
169template <
typename C,
typename E, E (*A)(
typename C::const_iterator &),
180 rhs.m_mutex =
nullptr;
189 MutexType *m_mutex =
nullptr;
bool operator==(const AdaptedConstIterator &rhs)
AdaptedConstIterator operator-(typename BackingIterator::difference_type offset)
bool operator<(AdaptedConstIterator &rhs)
friend C1::const_iterator::difference_type operator-(AdaptedConstIterator< C1, E1, A1 > &, AdaptedConstIterator< C1, E1, A1 > &)
bool operator<=(AdaptedConstIterator &rhs)
AdaptedConstIterator & operator+=(typename BackingIterator::difference_type offset)
bool operator!=(const AdaptedConstIterator &rhs)
C::const_iterator BackingIterator
AdaptedConstIterator & operator--()
friend AdaptedConstIterator< C1, E1, A1 > operator+(typename C1::const_iterator::difference_type, AdaptedConstIterator< C1, E1, A1 > &)
friend void swap(AdaptedConstIterator< C1, E1, A1 > &, AdaptedConstIterator< C1, E1, A1 > &)
AdaptedConstIterator & operator=(const AdaptedConstIterator &rhs)
bool operator>=(AdaptedConstIterator &rhs)
~AdaptedConstIterator()=default
AdaptedConstIterator & operator++()
AdaptedConstIterator(BackingIterator backing_iterator)
AdaptedConstIterator(const AdaptedConstIterator &rhs)
AdaptedConstIterator operator+(typename BackingIterator::difference_type offset)
E operator[](typename BackingIterator::difference_type offset)
AdaptedConstIterator & operator-=(typename BackingIterator::difference_type offset)
bool operator>(AdaptedConstIterator &rhs)
AdaptedConstIterator< C, E, A > end()
AdaptedIterable(const C &container)
AdaptedConstIterator< C, E, A > begin()
LockingAdaptedIterable(LockingAdaptedIterable &&rhs)
LockingAdaptedIterable(const C &container, MutexType &mutex)
LockingAdaptedIterable(const LockingAdaptedIterable &)=delete
~LockingAdaptedIterable()
LockingAdaptedIterable & operator=(const LockingAdaptedIterable &)=delete
A class that represents a running process on the host machine.
void swap(AdaptedConstIterator< C, E, A > &lhs, AdaptedConstIterator< C, E, A > &rhs)
E vector_adapter(I &iter)
AdaptedConstIterator< C, E, A > operator+(typename AdaptedConstIterator< C, E, A >::BackingIterator::difference_type offset, AdaptedConstIterator< C, E, A > &rhs)
AdaptedConstIterator< C, E, A >::BackingIterator::difference_type operator-(AdaptedConstIterator< C, E, A > &lhs, AdaptedConstIterator< C, E, A > &rhs)