array-hash
Public Types | Public Member Functions | Friends | List of all members
tsl::detail_array_hash::array_hash< CharT, T, Hash, KeyEqual, StoreNullTerminator, KeySizeT, IndexSizeT, GrowthPolicy >::array_hash_iterator< IsConst > Class Template Reference

#include <array_hash.h>

Public Types

using iterator_category = std::forward_iterator_tag
 
using value_type = typename std::conditional< has_mapped_type< T >::value, T, void >::type
 
using difference_type = std::ptrdiff_t
 
using reference = typename std::conditional< has_mapped_type< T >::value, typename std::conditional< IsConst, typename std::add_lvalue_reference< const T >::type, typename std::add_lvalue_reference< T >::type >::type, void >::type
 
using pointer = typename std::conditional< has_mapped_type< T >::value, typename std::conditional< IsConst, const T *, T * >::type, void >::type
 

Public Member Functions

 array_hash_iterator () noexcept
 
 array_hash_iterator (const array_hash_iterator< false > &other) noexcept
 
const CharT * key () const
 
size_type key_size () const
 
std::basic_string_view< CharT > key_sv () const
 
template<class U = T, typename std::enable_if< has_mapped_type< U >::value >::type * = nullptr>
reference value () const
 
template<class U = T, typename std::enable_if< has_mapped_type< U >::value >::type * = nullptr>
reference operator* () const
 
template<class U = T, typename std::enable_if< has_mapped_type< U >::value >::type * = nullptr>
pointer operator-> () const
 
array_hash_iteratoroperator++ ()
 
array_hash_iterator operator++ (int)
 

Friends

class array_hash
 
bool operator== (const array_hash_iterator &lhs, const array_hash_iterator &rhs)
 
bool operator!= (const array_hash_iterator &lhs, const array_hash_iterator &rhs)
 

Member Typedef Documentation

◆ difference_type

template<class CharT, class T, class Hash, class KeyEqual, bool StoreNullTerminator, class KeySizeT, class IndexSizeT, class GrowthPolicy>
template<bool IsConst>
using tsl::detail_array_hash::array_hash< CharT, T, Hash, KeyEqual, StoreNullTerminator, KeySizeT, IndexSizeT, GrowthPolicy >::array_hash_iterator< IsConst >::difference_type = std::ptrdiff_t

◆ iterator_category

template<class CharT, class T, class Hash, class KeyEqual, bool StoreNullTerminator, class KeySizeT, class IndexSizeT, class GrowthPolicy>
template<bool IsConst>
using tsl::detail_array_hash::array_hash< CharT, T, Hash, KeyEqual, StoreNullTerminator, KeySizeT, IndexSizeT, GrowthPolicy >::array_hash_iterator< IsConst >::iterator_category = std::forward_iterator_tag

◆ pointer

template<class CharT, class T, class Hash, class KeyEqual, bool StoreNullTerminator, class KeySizeT, class IndexSizeT, class GrowthPolicy>
template<bool IsConst>
using tsl::detail_array_hash::array_hash< CharT, T, Hash, KeyEqual, StoreNullTerminator, KeySizeT, IndexSizeT, GrowthPolicy >::array_hash_iterator< IsConst >::pointer = typename std::conditional<has_mapped_type<T>::value, typename std::conditional<IsConst, const T*, T*>::type, void>::type

◆ reference

template<class CharT, class T, class Hash, class KeyEqual, bool StoreNullTerminator, class KeySizeT, class IndexSizeT, class GrowthPolicy>
template<bool IsConst>
using tsl::detail_array_hash::array_hash< CharT, T, Hash, KeyEqual, StoreNullTerminator, KeySizeT, IndexSizeT, GrowthPolicy >::array_hash_iterator< IsConst >::reference = typename std::conditional<has_mapped_type<T>::value, typename std::conditional< IsConst, typename std::add_lvalue_reference<const T>::type, typename std::add_lvalue_reference<T>::type>::type, void>::type

◆ value_type

template<class CharT, class T, class Hash, class KeyEqual, bool StoreNullTerminator, class KeySizeT, class IndexSizeT, class GrowthPolicy>
template<bool IsConst>
using tsl::detail_array_hash::array_hash< CharT, T, Hash, KeyEqual, StoreNullTerminator, KeySizeT, IndexSizeT, GrowthPolicy >::array_hash_iterator< IsConst >::value_type = typename std::conditional<has_mapped_type<T>::value, T, void>::type

Constructor & Destructor Documentation

◆ array_hash_iterator() [1/2]

template<class CharT, class T, class Hash, class KeyEqual, bool StoreNullTerminator, class KeySizeT, class IndexSizeT, class GrowthPolicy>
template<bool IsConst>
tsl::detail_array_hash::array_hash< CharT, T, Hash, KeyEqual, StoreNullTerminator, KeySizeT, IndexSizeT, GrowthPolicy >::array_hash_iterator< IsConst >::array_hash_iterator ( )
inlinenoexcept

◆ array_hash_iterator() [2/2]

template<class CharT, class T, class Hash, class KeyEqual, bool StoreNullTerminator, class KeySizeT, class IndexSizeT, class GrowthPolicy>
template<bool IsConst>
tsl::detail_array_hash::array_hash< CharT, T, Hash, KeyEqual, StoreNullTerminator, KeySizeT, IndexSizeT, GrowthPolicy >::array_hash_iterator< IsConst >::array_hash_iterator ( const array_hash_iterator< false > &  other)
inlinenoexcept

Member Function Documentation

◆ key()

template<class CharT, class T, class Hash, class KeyEqual, bool StoreNullTerminator, class KeySizeT, class IndexSizeT, class GrowthPolicy>
template<bool IsConst>
const CharT* tsl::detail_array_hash::array_hash< CharT, T, Hash, KeyEqual, StoreNullTerminator, KeySizeT, IndexSizeT, GrowthPolicy >::array_hash_iterator< IsConst >::key ( ) const
inline

◆ key_size()

template<class CharT, class T, class Hash, class KeyEqual, bool StoreNullTerminator, class KeySizeT, class IndexSizeT, class GrowthPolicy>
template<bool IsConst>
size_type tsl::detail_array_hash::array_hash< CharT, T, Hash, KeyEqual, StoreNullTerminator, KeySizeT, IndexSizeT, GrowthPolicy >::array_hash_iterator< IsConst >::key_size ( ) const
inline

◆ key_sv()

template<class CharT, class T, class Hash, class KeyEqual, bool StoreNullTerminator, class KeySizeT, class IndexSizeT, class GrowthPolicy>
template<bool IsConst>
std::basic_string_view<CharT> tsl::detail_array_hash::array_hash< CharT, T, Hash, KeyEqual, StoreNullTerminator, KeySizeT, IndexSizeT, GrowthPolicy >::array_hash_iterator< IsConst >::key_sv ( ) const
inline

◆ operator*()

template<class CharT, class T, class Hash, class KeyEqual, bool StoreNullTerminator, class KeySizeT, class IndexSizeT, class GrowthPolicy>
template<bool IsConst>
template<class U = T, typename std::enable_if< has_mapped_type< U >::value >::type * = nullptr>
reference tsl::detail_array_hash::array_hash< CharT, T, Hash, KeyEqual, StoreNullTerminator, KeySizeT, IndexSizeT, GrowthPolicy >::array_hash_iterator< IsConst >::operator* ( ) const
inline

◆ operator++() [1/2]

template<class CharT, class T, class Hash, class KeyEqual, bool StoreNullTerminator, class KeySizeT, class IndexSizeT, class GrowthPolicy>
template<bool IsConst>
array_hash_iterator& tsl::detail_array_hash::array_hash< CharT, T, Hash, KeyEqual, StoreNullTerminator, KeySizeT, IndexSizeT, GrowthPolicy >::array_hash_iterator< IsConst >::operator++ ( )
inline

◆ operator++() [2/2]

template<class CharT, class T, class Hash, class KeyEqual, bool StoreNullTerminator, class KeySizeT, class IndexSizeT, class GrowthPolicy>
template<bool IsConst>
array_hash_iterator tsl::detail_array_hash::array_hash< CharT, T, Hash, KeyEqual, StoreNullTerminator, KeySizeT, IndexSizeT, GrowthPolicy >::array_hash_iterator< IsConst >::operator++ ( int  )
inline

◆ operator->()

template<class CharT, class T, class Hash, class KeyEqual, bool StoreNullTerminator, class KeySizeT, class IndexSizeT, class GrowthPolicy>
template<bool IsConst>
template<class U = T, typename std::enable_if< has_mapped_type< U >::value >::type * = nullptr>
pointer tsl::detail_array_hash::array_hash< CharT, T, Hash, KeyEqual, StoreNullTerminator, KeySizeT, IndexSizeT, GrowthPolicy >::array_hash_iterator< IsConst >::operator-> ( ) const
inline

◆ value()

template<class CharT, class T, class Hash, class KeyEqual, bool StoreNullTerminator, class KeySizeT, class IndexSizeT, class GrowthPolicy>
template<bool IsConst>
template<class U = T, typename std::enable_if< has_mapped_type< U >::value >::type * = nullptr>
reference tsl::detail_array_hash::array_hash< CharT, T, Hash, KeyEqual, StoreNullTerminator, KeySizeT, IndexSizeT, GrowthPolicy >::array_hash_iterator< IsConst >::value ( ) const
inline

Friends And Related Function Documentation

◆ array_hash

template<class CharT, class T, class Hash, class KeyEqual, bool StoreNullTerminator, class KeySizeT, class IndexSizeT, class GrowthPolicy>
template<bool IsConst>
friend class array_hash
friend

◆ operator!=

template<class CharT, class T, class Hash, class KeyEqual, bool StoreNullTerminator, class KeySizeT, class IndexSizeT, class GrowthPolicy>
template<bool IsConst>
bool operator!= ( const array_hash_iterator< IsConst > &  lhs,
const array_hash_iterator< IsConst > &  rhs 
)
friend

◆ operator==

template<class CharT, class T, class Hash, class KeyEqual, bool StoreNullTerminator, class KeySizeT, class IndexSizeT, class GrowthPolicy>
template<bool IsConst>
bool operator== ( const array_hash_iterator< IsConst > &  lhs,
const array_hash_iterator< IsConst > &  rhs 
)
friend

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