12#ifndef MCRL2_ATERMPP_ATERM_LIST_ITERATOR_H
13#define MCRL2_ATERMPP_ATERM_LIST_ITERATOR_H
30template <
typename Term>
37 const detail::_aterm_list<Term>*
m_list;
42 :
m_list(static_cast<const detail::_aterm_list<Term>*>(l))
157template <
typename Term>
170 :
m_position(reinterpret_cast<const detail::_aterm_list<Term>*>(l)->size()),
176 for(detail::_aterm_list<Term>
const* t=
reinterpret_cast<detail::_aterm_list<Term> const*
>(l);
178 t=
reinterpret_cast<detail::_aterm_list<Term> const*
>(
detail::address(t->tail())), j++)
248 return !(*
this == other);
This is the class to which an aterm points.
const function_symbol & function() const noexcept
const function_symbol & as_empty_list() noexcept
const function_symbol & as_list() noexcept
Reverse iterator for term_list.
reverse_term_list_iterator & operator=(const reverse_term_list_iterator &other)=delete
Assignment is not available.
bool operator>=(const reverse_term_list_iterator &other) const
Comparison of iterators.
bool operator>(const reverse_term_list_iterator &other) const
Comparison of iterators.
ptrdiff_t difference_type
reverse_term_list_iterator()
Default constructor.
bool operator==(const reverse_term_list_iterator &other) const
Equality of iterators.
reverse_term_list_iterator(detail::_aterm const *l)
Constructor from an aterm which must be a list.
bool operator<=(const reverse_term_list_iterator &other) const
Comparison of iterators.
reverse_term_list_iterator & operator++()
Prefix increment operator on iterator.
const Term & operator*() const
Dereference operator on an iterator.
bool operator<(const reverse_term_list_iterator &other) const
Comparison of iterators.
const Term * operator->() const
Arrow operator on an iterator.
reverse_term_list_iterator(const reverse_term_list_iterator &other)=delete
The copy constructor is not available.
std::unique_ptr< detail::_aterm_list< Term > const *[]> m_list_element_references
bool operator!=(const reverse_term_list_iterator &other) const
Inequality of iterators.
void operator++(int)
Postfix increment operator on iterator.
std::forward_iterator_tag iterator_category
const detail::_aterm_list< Term > * m_list
term_list_iterator()
Default constructor.
std::forward_iterator_tag iterator_category
bool operator<=(const term_list_iterator &other) const
Comparison of iterators.
bool operator<(const term_list_iterator &other) const
Comparison of iterators.
term_list_iterator & operator=(const term_list_iterator &other)
Assignment.
term_list_iterator operator++(int)
Postfix increment operator on iterator.
bool operator>(const term_list_iterator &other) const
Comparison of iterators.
term_list_iterator(const term_list_iterator &other)
Copy constructor.
const Term & operator*() const
Dereference operator on an iterator.
term_list_iterator(const detail::_aterm *l)
Constructor from an aterm which must be a list.
ptrdiff_t difference_type
bool operator>=(const term_list_iterator &other) const
Comparison of iterators.
bool operator!=(const term_list_iterator &other) const
Inequality of iterators.
term_list_iterator & operator++()
Prefix increment operator on iterator.
bool operator==(const term_list_iterator &other) const
Equality of iterators.
const Term * operator->() const
Arrow operator on an iterator.
_aterm * address(const unprotected_aterm_core &t)
aterm_pool & g_term_pool()
obtain a reference to the global aterm pool.
The main namespace for the aterm++ library.