ordered-map
Public Types | Public Member Functions | Friends | List of all members
tsl::detail_ordered_hash::ordered_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, ValueTypeContainer, IndexType >::ordered_iterator< IsConst > Class Template Reference

#include <ordered_hash.h>

Public Types

using iterator_category = std::random_access_iterator_tag
 
using value_type = const typename ordered_hash::value_type
 
using difference_type = typename iterator::difference_type
 
using reference = value_type &
 
using pointer = value_type *
 

Public Member Functions

 ordered_iterator () noexcept
 
template<bool TIsConst = IsConst, typename std::enable_if< TIsConst >::type * = nullptr>
 ordered_iterator (const ordered_iterator<!TIsConst > &other) noexcept
 
 ordered_iterator (const ordered_iterator &other)=default
 
 ordered_iterator (ordered_iterator &&other)=default
 
ordered_iteratoroperator= (const ordered_iterator &other)=default
 
ordered_iteratoroperator= (ordered_iterator &&other)=default
 
const ordered_hash::key_typekey () const
 
template<class U = ValueSelect, typename std::enable_if< has_mapped_type< U >::value &&IsConst >::type * = nullptr>
const U::value_type & value () const
 
template<class U = ValueSelect, typename std::enable_if< has_mapped_type< U >::value &&!IsConst >::type * = nullptr>
U::value_type & value ()
 
reference operator* () const
 
pointer operator-> () const
 
ordered_iteratoroperator++ ()
 
ordered_iteratoroperator-- ()
 
ordered_iterator operator++ (int)
 
ordered_iterator operator-- (int)
 
reference operator[] (difference_type n) const
 
ordered_iteratoroperator+= (difference_type n)
 
ordered_iteratoroperator-= (difference_type n)
 
ordered_iterator operator+ (difference_type n)
 
ordered_iterator operator- (difference_type n)
 

Friends

class ordered_hash
 
bool operator== (const ordered_iterator &lhs, const ordered_iterator &rhs)
 
bool operator!= (const ordered_iterator &lhs, const ordered_iterator &rhs)
 
bool operator< (const ordered_iterator &lhs, const ordered_iterator &rhs)
 
bool operator> (const ordered_iterator &lhs, const ordered_iterator &rhs)
 
bool operator<= (const ordered_iterator &lhs, const ordered_iterator &rhs)
 
bool operator>= (const ordered_iterator &lhs, const ordered_iterator &rhs)
 
ordered_iterator operator+ (difference_type n, const ordered_iterator &it)
 
difference_type operator- (const ordered_iterator &lhs, const ordered_iterator &rhs)
 

Member Typedef Documentation

◆ difference_type

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, class ValueTypeContainer, class IndexType>
template<bool IsConst>
using tsl::detail_ordered_hash::ordered_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, ValueTypeContainer, IndexType >::ordered_iterator< IsConst >::difference_type = typename iterator::difference_type

◆ iterator_category

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, class ValueTypeContainer, class IndexType>
template<bool IsConst>
using tsl::detail_ordered_hash::ordered_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, ValueTypeContainer, IndexType >::ordered_iterator< IsConst >::iterator_category = std::random_access_iterator_tag

◆ pointer

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, class ValueTypeContainer, class IndexType>
template<bool IsConst>
using tsl::detail_ordered_hash::ordered_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, ValueTypeContainer, IndexType >::ordered_iterator< IsConst >::pointer = value_type*

◆ reference

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, class ValueTypeContainer, class IndexType>
template<bool IsConst>
using tsl::detail_ordered_hash::ordered_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, ValueTypeContainer, IndexType >::ordered_iterator< IsConst >::reference = value_type&

◆ value_type

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, class ValueTypeContainer, class IndexType>
template<bool IsConst>
using tsl::detail_ordered_hash::ordered_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, ValueTypeContainer, IndexType >::ordered_iterator< IsConst >::value_type = const typename ordered_hash::value_type

Constructor & Destructor Documentation

◆ ordered_iterator() [1/4]

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, class ValueTypeContainer, class IndexType>
template<bool IsConst>
tsl::detail_ordered_hash::ordered_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, ValueTypeContainer, IndexType >::ordered_iterator< IsConst >::ordered_iterator ( )
inlinenoexcept

◆ ordered_iterator() [2/4]

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, class ValueTypeContainer, class IndexType>
template<bool IsConst>
template<bool TIsConst = IsConst, typename std::enable_if< TIsConst >::type * = nullptr>
tsl::detail_ordered_hash::ordered_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, ValueTypeContainer, IndexType >::ordered_iterator< IsConst >::ordered_iterator ( const ordered_iterator<!TIsConst > &  other)
inlinenoexcept

◆ ordered_iterator() [3/4]

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, class ValueTypeContainer, class IndexType>
template<bool IsConst>
tsl::detail_ordered_hash::ordered_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, ValueTypeContainer, IndexType >::ordered_iterator< IsConst >::ordered_iterator ( const ordered_iterator< IsConst > &  other)
default

◆ ordered_iterator() [4/4]

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, class ValueTypeContainer, class IndexType>
template<bool IsConst>
tsl::detail_ordered_hash::ordered_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, ValueTypeContainer, IndexType >::ordered_iterator< IsConst >::ordered_iterator ( ordered_iterator< IsConst > &&  other)
default

Member Function Documentation

◆ key()

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, class ValueTypeContainer, class IndexType>
template<bool IsConst>
const ordered_hash::key_type& tsl::detail_ordered_hash::ordered_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, ValueTypeContainer, IndexType >::ordered_iterator< IsConst >::key ( ) const
inline

◆ operator*()

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, class ValueTypeContainer, class IndexType>
template<bool IsConst>
reference tsl::detail_ordered_hash::ordered_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, ValueTypeContainer, IndexType >::ordered_iterator< IsConst >::operator* ( ) const
inline

◆ operator+()

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, class ValueTypeContainer, class IndexType>
template<bool IsConst>
ordered_iterator tsl::detail_ordered_hash::ordered_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, ValueTypeContainer, IndexType >::ordered_iterator< IsConst >::operator+ ( difference_type  n)
inline

◆ operator++() [1/2]

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, class ValueTypeContainer, class IndexType>
template<bool IsConst>
ordered_iterator& tsl::detail_ordered_hash::ordered_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, ValueTypeContainer, IndexType >::ordered_iterator< IsConst >::operator++ ( )
inline

◆ operator++() [2/2]

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, class ValueTypeContainer, class IndexType>
template<bool IsConst>
ordered_iterator tsl::detail_ordered_hash::ordered_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, ValueTypeContainer, IndexType >::ordered_iterator< IsConst >::operator++ ( int  )
inline

◆ operator+=()

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, class ValueTypeContainer, class IndexType>
template<bool IsConst>
ordered_iterator& tsl::detail_ordered_hash::ordered_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, ValueTypeContainer, IndexType >::ordered_iterator< IsConst >::operator+= ( difference_type  n)
inline

◆ operator-()

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, class ValueTypeContainer, class IndexType>
template<bool IsConst>
ordered_iterator tsl::detail_ordered_hash::ordered_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, ValueTypeContainer, IndexType >::ordered_iterator< IsConst >::operator- ( difference_type  n)
inline

◆ operator--() [1/2]

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, class ValueTypeContainer, class IndexType>
template<bool IsConst>
ordered_iterator& tsl::detail_ordered_hash::ordered_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, ValueTypeContainer, IndexType >::ordered_iterator< IsConst >::operator-- ( )
inline

◆ operator--() [2/2]

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, class ValueTypeContainer, class IndexType>
template<bool IsConst>
ordered_iterator tsl::detail_ordered_hash::ordered_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, ValueTypeContainer, IndexType >::ordered_iterator< IsConst >::operator-- ( int  )
inline

◆ operator-=()

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, class ValueTypeContainer, class IndexType>
template<bool IsConst>
ordered_iterator& tsl::detail_ordered_hash::ordered_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, ValueTypeContainer, IndexType >::ordered_iterator< IsConst >::operator-= ( difference_type  n)
inline

◆ operator->()

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, class ValueTypeContainer, class IndexType>
template<bool IsConst>
pointer tsl::detail_ordered_hash::ordered_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, ValueTypeContainer, IndexType >::ordered_iterator< IsConst >::operator-> ( ) const
inline

◆ operator=() [1/2]

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, class ValueTypeContainer, class IndexType>
template<bool IsConst>
ordered_iterator& tsl::detail_ordered_hash::ordered_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, ValueTypeContainer, IndexType >::ordered_iterator< IsConst >::operator= ( const ordered_iterator< IsConst > &  other)
default

◆ operator=() [2/2]

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, class ValueTypeContainer, class IndexType>
template<bool IsConst>
ordered_iterator& tsl::detail_ordered_hash::ordered_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, ValueTypeContainer, IndexType >::ordered_iterator< IsConst >::operator= ( ordered_iterator< IsConst > &&  other)
default

◆ operator[]()

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, class ValueTypeContainer, class IndexType>
template<bool IsConst>
reference tsl::detail_ordered_hash::ordered_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, ValueTypeContainer, IndexType >::ordered_iterator< IsConst >::operator[] ( difference_type  n) const
inline

◆ value() [1/2]

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, class ValueTypeContainer, class IndexType>
template<bool IsConst>
template<class U = ValueSelect, typename std::enable_if< has_mapped_type< U >::value &&IsConst >::type * = nullptr>
const U::value_type& tsl::detail_ordered_hash::ordered_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, ValueTypeContainer, IndexType >::ordered_iterator< IsConst >::value ( ) const
inline

◆ value() [2/2]

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, class ValueTypeContainer, class IndexType>
template<bool IsConst>
template<class U = ValueSelect, typename std::enable_if< has_mapped_type< U >::value &&!IsConst >::type * = nullptr>
U::value_type& tsl::detail_ordered_hash::ordered_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, ValueTypeContainer, IndexType >::ordered_iterator< IsConst >::value ( )
inline

Friends And Related Function Documentation

◆ operator!=

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, class ValueTypeContainer, class IndexType>
template<bool IsConst>
bool operator!= ( const ordered_iterator< IsConst > &  lhs,
const ordered_iterator< IsConst > &  rhs 
)
friend

◆ operator+

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, class ValueTypeContainer, class IndexType>
template<bool IsConst>
ordered_iterator operator+ ( difference_type  n,
const ordered_iterator< IsConst > &  it 
)
friend

◆ operator-

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, class ValueTypeContainer, class IndexType>
template<bool IsConst>
difference_type operator- ( const ordered_iterator< IsConst > &  lhs,
const ordered_iterator< IsConst > &  rhs 
)
friend

◆ operator<

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, class ValueTypeContainer, class IndexType>
template<bool IsConst>
bool operator< ( const ordered_iterator< IsConst > &  lhs,
const ordered_iterator< IsConst > &  rhs 
)
friend

◆ operator<=

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, class ValueTypeContainer, class IndexType>
template<bool IsConst>
bool operator<= ( const ordered_iterator< IsConst > &  lhs,
const ordered_iterator< IsConst > &  rhs 
)
friend

◆ operator==

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, class ValueTypeContainer, class IndexType>
template<bool IsConst>
bool operator== ( const ordered_iterator< IsConst > &  lhs,
const ordered_iterator< IsConst > &  rhs 
)
friend

◆ operator>

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, class ValueTypeContainer, class IndexType>
template<bool IsConst>
bool operator> ( const ordered_iterator< IsConst > &  lhs,
const ordered_iterator< IsConst > &  rhs 
)
friend

◆ operator>=

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, class ValueTypeContainer, class IndexType>
template<bool IsConst>
bool operator>= ( const ordered_iterator< IsConst > &  lhs,
const ordered_iterator< IsConst > &  rhs 
)
friend

◆ ordered_hash

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, class ValueTypeContainer, class IndexType>
template<bool IsConst>
friend class ordered_hash
friend

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