Jlm
Public Types | Public Member Functions | Private Attributes | Friends | List of all members
jlm::util::IntrusiveList< ElementType, Accessor >::Iterator Class Reference

#include <intrusive-list.hpp>

Collaboration diagram for jlm::util::IntrusiveList< ElementType, Accessor >::Iterator:
Collaboration graph
[legend]

Public Types

typedef ElementType value_type
 
typedef ElementType * pointer
 
typedef ElementType & reference
 
typedef std::bidirectional_iterator_tag iterator_category
 
typedef size_t size_type
 
typedef ssize_t difference_type
 

Public Member Functions

constexpr Iterator () noexcept
 
constexpr Iterator (const IntrusiveList *list, ElementType *object)
 
const Iteratoroperator++ () noexcept
 
Iterator operator++ (int) noexcept
 
const Iteratoroperator-- () noexcept
 
Iterator operator-- (int) noexcept
 
ElementType & operator* () const noexcept
 
ElementType * operator-> () const noexcept
 
bool operator== (const Iterator &other) const noexcept
 
bool operator!= (const Iterator &other) const noexcept
 
ElementType * ptr () const noexcept
 

Private Attributes

const IntrusiveListlist_
 
ElementType * element_
 

Friends

class ConstIterator
 

Detailed Description

template<typename ElementType, typename Accessor>
class jlm::util::IntrusiveList< ElementType, Accessor >::Iterator

Definition at line 98 of file intrusive-list.hpp.

Member Typedef Documentation

◆ difference_type

template<typename ElementType , typename Accessor >
typedef ssize_t jlm::util::IntrusiveList< ElementType, Accessor >::Iterator::difference_type

Definition at line 106 of file intrusive-list.hpp.

◆ iterator_category

template<typename ElementType , typename Accessor >
typedef std::bidirectional_iterator_tag jlm::util::IntrusiveList< ElementType, Accessor >::Iterator::iterator_category

Definition at line 104 of file intrusive-list.hpp.

◆ pointer

template<typename ElementType , typename Accessor >
typedef ElementType* jlm::util::IntrusiveList< ElementType, Accessor >::Iterator::pointer

Definition at line 102 of file intrusive-list.hpp.

◆ reference

template<typename ElementType , typename Accessor >
typedef ElementType& jlm::util::IntrusiveList< ElementType, Accessor >::Iterator::reference

Definition at line 103 of file intrusive-list.hpp.

◆ size_type

template<typename ElementType , typename Accessor >
typedef size_t jlm::util::IntrusiveList< ElementType, Accessor >::Iterator::size_type

Definition at line 105 of file intrusive-list.hpp.

◆ value_type

template<typename ElementType , typename Accessor >
typedef ElementType jlm::util::IntrusiveList< ElementType, Accessor >::Iterator::value_type

Definition at line 101 of file intrusive-list.hpp.

Constructor & Destructor Documentation

◆ Iterator() [1/2]

template<typename ElementType , typename Accessor >
constexpr jlm::util::IntrusiveList< ElementType, Accessor >::Iterator::Iterator ( )
inlineconstexprnoexcept

Definition at line 108 of file intrusive-list.hpp.

◆ Iterator() [2/2]

template<typename ElementType , typename Accessor >
constexpr jlm::util::IntrusiveList< ElementType, Accessor >::Iterator::Iterator ( const IntrusiveList list,
ElementType *  object 
)
inlineconstexpr

Definition at line 113 of file intrusive-list.hpp.

Member Function Documentation

◆ operator!=()

template<typename ElementType , typename Accessor >
bool jlm::util::IntrusiveList< ElementType, Accessor >::Iterator::operator!= ( const Iterator other) const
inlinenoexcept

Definition at line 174 of file intrusive-list.hpp.

◆ operator*()

template<typename ElementType , typename Accessor >
ElementType& jlm::util::IntrusiveList< ElementType, Accessor >::Iterator::operator* ( ) const
inlinenoexcept

Definition at line 156 of file intrusive-list.hpp.

◆ operator++() [1/2]

template<typename ElementType , typename Accessor >
const Iterator& jlm::util::IntrusiveList< ElementType, Accessor >::Iterator::operator++ ( )
inlinenoexcept

Definition at line 119 of file intrusive-list.hpp.

◆ operator++() [2/2]

template<typename ElementType , typename Accessor >
Iterator jlm::util::IntrusiveList< ElementType, Accessor >::Iterator::operator++ ( int  )
inlinenoexcept

Definition at line 126 of file intrusive-list.hpp.

◆ operator--() [1/2]

template<typename ElementType , typename Accessor >
const Iterator& jlm::util::IntrusiveList< ElementType, Accessor >::Iterator::operator-- ( )
inlinenoexcept

Definition at line 134 of file intrusive-list.hpp.

◆ operator--() [2/2]

template<typename ElementType , typename Accessor >
Iterator jlm::util::IntrusiveList< ElementType, Accessor >::Iterator::operator-- ( int  )
inlinenoexcept

Definition at line 148 of file intrusive-list.hpp.

◆ operator->()

template<typename ElementType , typename Accessor >
ElementType* jlm::util::IntrusiveList< ElementType, Accessor >::Iterator::operator-> ( ) const
inlinenoexcept

Definition at line 162 of file intrusive-list.hpp.

◆ operator==()

template<typename ElementType , typename Accessor >
bool jlm::util::IntrusiveList< ElementType, Accessor >::Iterator::operator== ( const Iterator other) const
inlinenoexcept

Definition at line 168 of file intrusive-list.hpp.

◆ ptr()

template<typename ElementType , typename Accessor >
ElementType* jlm::util::IntrusiveList< ElementType, Accessor >::Iterator::ptr ( ) const
inlinenoexcept

Definition at line 180 of file intrusive-list.hpp.

Friends And Related Function Documentation

◆ ConstIterator

template<typename ElementType , typename Accessor >
friend class ConstIterator
friend

Definition at line 188 of file intrusive-list.hpp.

Member Data Documentation

◆ element_

template<typename ElementType , typename Accessor >
ElementType* jlm::util::IntrusiveList< ElementType, Accessor >::Iterator::element_
private

Definition at line 187 of file intrusive-list.hpp.

◆ list_

template<typename ElementType , typename Accessor >
const IntrusiveList* jlm::util::IntrusiveList< ElementType, Accessor >::Iterator::list_
private

Definition at line 186 of file intrusive-list.hpp.


The documentation for this class was generated from the following file: