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

#include <intrusive-hash.hpp>

Collaboration diagram for jlm::util::IntrusiveHash< KeyType, ElementType, Accessor, KeyHash, KeyEqual >::Iterator:
Collaboration graph
[legend]

Public Types

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

Public Member Functions

constexpr Iterator () noexcept
 
constexpr Iterator (const IntrusiveHash *map, ElementType *object)
 
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 IntrusiveHashmap_
 
ElementType * element_
 

Friends

class ConstIterator
 

Detailed Description

template<typename KeyType, typename ElementType, typename Accessor, typename KeyHash = std::hash<KeyType>, typename KeyEqual = SafeEqual<KeyType>>
class jlm::util::IntrusiveHash< KeyType, ElementType, Accessor, KeyHash, KeyEqual >::Iterator

Definition at line 155 of file intrusive-hash.hpp.

Member Typedef Documentation

◆ difference_type

template<typename KeyType , typename ElementType , typename Accessor , typename KeyHash = std::hash<KeyType>, typename KeyEqual = SafeEqual<KeyType>>
typedef ssize_t jlm::util::IntrusiveHash< KeyType, ElementType, Accessor, KeyHash, KeyEqual >::Iterator::difference_type

Definition at line 163 of file intrusive-hash.hpp.

◆ iterator_category

template<typename KeyType , typename ElementType , typename Accessor , typename KeyHash = std::hash<KeyType>, typename KeyEqual = SafeEqual<KeyType>>
typedef std::forward_iterator_tag jlm::util::IntrusiveHash< KeyType, ElementType, Accessor, KeyHash, KeyEqual >::Iterator::iterator_category

Definition at line 161 of file intrusive-hash.hpp.

◆ pointer

template<typename KeyType , typename ElementType , typename Accessor , typename KeyHash = std::hash<KeyType>, typename KeyEqual = SafeEqual<KeyType>>
typedef ElementType* jlm::util::IntrusiveHash< KeyType, ElementType, Accessor, KeyHash, KeyEqual >::Iterator::pointer

Definition at line 159 of file intrusive-hash.hpp.

◆ reference

template<typename KeyType , typename ElementType , typename Accessor , typename KeyHash = std::hash<KeyType>, typename KeyEqual = SafeEqual<KeyType>>
typedef ElementType& jlm::util::IntrusiveHash< KeyType, ElementType, Accessor, KeyHash, KeyEqual >::Iterator::reference

Definition at line 160 of file intrusive-hash.hpp.

◆ size_type

template<typename KeyType , typename ElementType , typename Accessor , typename KeyHash = std::hash<KeyType>, typename KeyEqual = SafeEqual<KeyType>>
typedef size_t jlm::util::IntrusiveHash< KeyType, ElementType, Accessor, KeyHash, KeyEqual >::Iterator::size_type

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

◆ value_type

template<typename KeyType , typename ElementType , typename Accessor , typename KeyHash = std::hash<KeyType>, typename KeyEqual = SafeEqual<KeyType>>
typedef ElementType jlm::util::IntrusiveHash< KeyType, ElementType, Accessor, KeyHash, KeyEqual >::Iterator::value_type

Definition at line 158 of file intrusive-hash.hpp.

Constructor & Destructor Documentation

◆ Iterator() [1/2]

template<typename KeyType , typename ElementType , typename Accessor , typename KeyHash = std::hash<KeyType>, typename KeyEqual = SafeEqual<KeyType>>
constexpr jlm::util::IntrusiveHash< KeyType, ElementType, Accessor, KeyHash, KeyEqual >::Iterator::Iterator ( )
inlineconstexprnoexcept

Definition at line 165 of file intrusive-hash.hpp.

◆ Iterator() [2/2]

template<typename KeyType , typename ElementType , typename Accessor , typename KeyHash = std::hash<KeyType>, typename KeyEqual = SafeEqual<KeyType>>
constexpr jlm::util::IntrusiveHash< KeyType, ElementType, Accessor, KeyHash, KeyEqual >::Iterator::Iterator ( const IntrusiveHash map,
ElementType *  object 
)
inlineconstexpr

Definition at line 170 of file intrusive-hash.hpp.

Member Function Documentation

◆ operator!=()

template<typename KeyType , typename ElementType , typename Accessor , typename KeyHash = std::hash<KeyType>, typename KeyEqual = SafeEqual<KeyType>>
bool jlm::util::IntrusiveHash< KeyType, ElementType, Accessor, KeyHash, KeyEqual >::Iterator::operator!= ( const Iterator other) const
inlinenoexcept

Definition at line 220 of file intrusive-hash.hpp.

◆ operator*()

template<typename KeyType , typename ElementType , typename Accessor , typename KeyHash = std::hash<KeyType>, typename KeyEqual = SafeEqual<KeyType>>
ElementType& jlm::util::IntrusiveHash< KeyType, ElementType, Accessor, KeyHash, KeyEqual >::Iterator::operator* ( ) const
inlinenoexcept

Definition at line 202 of file intrusive-hash.hpp.

◆ operator++() [1/2]

template<typename KeyType , typename ElementType , typename Accessor , typename KeyHash = std::hash<KeyType>, typename KeyEqual = SafeEqual<KeyType>>
const Iterator& jlm::util::IntrusiveHash< KeyType, ElementType, Accessor, KeyHash, KeyEqual >::Iterator::operator++ ( )
inlinenoexcept

Definition at line 176 of file intrusive-hash.hpp.

◆ operator++() [2/2]

template<typename KeyType , typename ElementType , typename Accessor , typename KeyHash = std::hash<KeyType>, typename KeyEqual = SafeEqual<KeyType>>
Iterator jlm::util::IntrusiveHash< KeyType, ElementType, Accessor, KeyHash, KeyEqual >::Iterator::operator++ ( int  )
inlinenoexcept

Definition at line 194 of file intrusive-hash.hpp.

◆ operator->()

template<typename KeyType , typename ElementType , typename Accessor , typename KeyHash = std::hash<KeyType>, typename KeyEqual = SafeEqual<KeyType>>
ElementType* jlm::util::IntrusiveHash< KeyType, ElementType, Accessor, KeyHash, KeyEqual >::Iterator::operator-> ( ) const
inlinenoexcept

Definition at line 208 of file intrusive-hash.hpp.

◆ operator==()

template<typename KeyType , typename ElementType , typename Accessor , typename KeyHash = std::hash<KeyType>, typename KeyEqual = SafeEqual<KeyType>>
bool jlm::util::IntrusiveHash< KeyType, ElementType, Accessor, KeyHash, KeyEqual >::Iterator::operator== ( const Iterator other) const
inlinenoexcept

Definition at line 214 of file intrusive-hash.hpp.

◆ ptr()

template<typename KeyType , typename ElementType , typename Accessor , typename KeyHash = std::hash<KeyType>, typename KeyEqual = SafeEqual<KeyType>>
ElementType* jlm::util::IntrusiveHash< KeyType, ElementType, Accessor, KeyHash, KeyEqual >::Iterator::ptr ( ) const
inlinenoexcept

Definition at line 226 of file intrusive-hash.hpp.

Friends And Related Function Documentation

◆ ConstIterator

template<typename KeyType , typename ElementType , typename Accessor , typename KeyHash = std::hash<KeyType>, typename KeyEqual = SafeEqual<KeyType>>
friend class ConstIterator
friend

Definition at line 234 of file intrusive-hash.hpp.

Member Data Documentation

◆ element_

template<typename KeyType , typename ElementType , typename Accessor , typename KeyHash = std::hash<KeyType>, typename KeyEqual = SafeEqual<KeyType>>
ElementType* jlm::util::IntrusiveHash< KeyType, ElementType, Accessor, KeyHash, KeyEqual >::Iterator::element_
private

Definition at line 233 of file intrusive-hash.hpp.

◆ map_

template<typename KeyType , typename ElementType , typename Accessor , typename KeyHash = std::hash<KeyType>, typename KeyEqual = SafeEqual<KeyType>>
const IntrusiveHash* jlm::util::IntrusiveHash< KeyType, ElementType, Accessor, KeyHash, KeyEqual >::Iterator::map_
private

Definition at line 232 of file intrusive-hash.hpp.


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