34template <
typename _T,
typename _Container,
bool _Const = false>
42 using reference =
typename std::conditional_t<_Const, const _T&, _T&>;
43 using pointer =
typename std::conditional_t<_Const, const _T*, _T*>;
50 return index_ == other.index_;
112 uint32_t
index()
const {
return index_; }
115 : container_(container), index_(
index) {}
119 : container_(container), index_(container.length()) {}
122 template <
bool Const_ = _Const,
class = std::enable_if_t<Const_>>
124 : container_(src.container), index_(src.index_) {}
131 const _Container& container_;
Iterator helper for _INFORMATION types that have a fixed array result.
Definition array_iterator.hh:35
pointer operator->() const
Definition array_iterator.hh:47
array_iterator operator--(int)
Definition array_iterator.hh:106
reference operator[](difference_type offset) const
Definition array_iterator.hh:56
reference operator*() const
Definition array_iterator.hh:46
array_iterator(const array_iterator< _T, _Container, false > &src)
Definition array_iterator.hh:123
array_iterator & operator--()
Definition array_iterator.hh:98
uint32_t index() const
Definition array_iterator.hh:112
bool operator==(const array_iterator< _T, _Container, _Const > &other) const
Definition array_iterator.hh:49
bool operator!=(const array_iterator< _T, _Container, _Const > &other) const
Definition array_iterator.hh:52
array_iterator operator++(int)
Definition array_iterator.hh:91
array_iterator & operator-=(difference_type offset)
Definition array_iterator.hh:70
_T value_type
Definition array_iterator.hh:39
array_iterator & operator++()
Definition array_iterator.hh:83
typename std::conditional_t< _Const, const _T *, _T * > pointer
Definition array_iterator.hh:43
array_iterator< _T, _Container, _Const > & operator=(const array_iterator< _T, _Container, _Const > &)=default
array_iterator(const _Container &container)
Definition array_iterator.hh:118
array_iterator(const _Container &container, uint32_t index)
Definition array_iterator.hh:114
int32_t difference_type
Definition array_iterator.hh:38
std::random_access_iterator_tag iterator_category
Definition array_iterator.hh:37
array_iterator & operator+=(difference_type offset)
Definition array_iterator.hh:58
array_iterator operator+(difference_type offset) const
Definition array_iterator.hh:64
typename std::conditional_t< _Const, const _T &, _T & > reference
Definition array_iterator.hh:42
array_iterator operator-(difference_type offset) const
Definition array_iterator.hh:76
Type-safe guest virtual address pointer and guest_ptr template.
#define introvirt_assert(condition, msg)
Definition introvirt_assert.hh:32
Core IntroVirt classes.
Definition Cr0.hh:20