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

#include <intrusive-hash.hpp>

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

Public Types

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

Public Member Functions

constexpr ConstIterator (const ConstIterator &other) noexcept=default
 
constexpr ConstIterator (const Iterator &other) noexcept
 
constexpr ConstIterator () noexcept
 
constexpr ConstIterator (const IntrusiveHash *map, const ElementType *object)
 
const ConstIteratoroperator++ () noexcept
 
ConstIterator operator++ (int) noexcept
 
const ElementType & operator* () const noexcept
 
const ElementType * operator-> () const noexcept
 
bool operator== (const ConstIterator &other) const noexcept
 
bool operator!= (const ConstIterator &other) const noexcept
 
const ElementType * ptr () const noexcept
 

Private Attributes

const IntrusiveHashmap_
 
const ElementType * element_
 

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 >::ConstIterator

Definition at line 237 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 >::ConstIterator::difference_type

Definition at line 245 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 >::ConstIterator::iterator_category

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

◆ pointer

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

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

◆ reference

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

Definition at line 242 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 >::ConstIterator::size_type

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

◆ value_type

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

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

Constructor & Destructor Documentation

◆ ConstIterator() [1/4]

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 >::ConstIterator::ConstIterator ( const ConstIterator other)
constexprdefaultnoexcept

◆ ConstIterator() [2/4]

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 >::ConstIterator::ConstIterator ( const Iterator other)
inlineconstexprnoexcept

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

◆ ConstIterator() [3/4]

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 >::ConstIterator::ConstIterator ( )
inlineconstexprnoexcept

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

◆ ConstIterator() [4/4]

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 >::ConstIterator::ConstIterator ( const IntrusiveHash map,
const ElementType *  object 
)
inlineconstexpr

Definition at line 259 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 >::ConstIterator::operator!= ( const ConstIterator other) const
inlinenoexcept

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

◆ operator*()

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

Definition at line 291 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 ConstIterator& jlm::util::IntrusiveHash< KeyType, ElementType, Accessor, KeyHash, KeyEqual >::ConstIterator::operator++ ( )
inlinenoexcept

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

◆ operator++() [2/2]

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

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

◆ operator->()

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

Definition at line 297 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 >::ConstIterator::operator== ( const ConstIterator other) const
inlinenoexcept

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

◆ ptr()

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

Definition at line 315 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>>
const ElementType* jlm::util::IntrusiveHash< KeyType, ElementType, Accessor, KeyHash, KeyEqual >::ConstIterator::element_
private

Definition at line 322 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 >::ConstIterator::map_
private

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


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