momo  3.11
momo::HashTraitsStd< TKey, THasher, TEqualComparer, THashBucket > Class Template Reference

#include <HashTraits.h>

Public Types

typedef TKey Key
 
typedef THasher Hasher
 
typedef TEqualComparer EqualComparer
 
typedef THashBucket HashBucket
 
template<typename ItemTraits >
using Bucket = typename HashBucket::template Bucket< ItemTraits, !isFastNothrowHashable >
 
template<typename KeyArg >
using IsValidKeyArg = internal::HashTraitsStdIsValidKeyArg< Hasher, EqualComparer >
 

Public Member Functions

 HashTraitsStd (size_t startBucketCount=size_t{1}<< HashBucket::logStartBucketCount, const Hasher &hasher=Hasher(), const EqualComparer &equalComp=EqualComparer())
 
 HashTraitsStd (const HashTraitsStd &hashTraits, float maxLoadFactor)
 
size_t CalcCapacity (size_t bucketCount, size_t bucketMaxItemCount) const noexcept
 
size_t GetBucketCountShift (size_t bucketCount, size_t bucketMaxItemCount) const noexcept
 
size_t GetLogStartBucketCount () const noexcept
 
template<typename KeyArg >
size_t GetHashCode (const KeyArg &key) const
 
template<typename KeyArg1 , typename KeyArg2 >
bool IsEqual (const KeyArg1 &key1, const KeyArg2 &key2) const
 
const HasherGetHasher () const noexcept
 
const EqualComparerGetEqualComparer () const noexcept
 
float GetMaxLoadFactor (size_t bucketMaxItemCount) const noexcept
 

Static Public Attributes

static const bool isFastNothrowHashable
 

Member Typedef Documentation

◆ Bucket

template<typename TKey , typename THasher = HashCoder<TKey>, typename TEqualComparer = std::equal_to<TKey>, typename THashBucket = HashBucketDefault>
template<typename ItemTraits >
using momo::HashTraitsStd< TKey, THasher, TEqualComparer, THashBucket >::Bucket = typename HashBucket::template Bucket<ItemTraits, !isFastNothrowHashable>

◆ EqualComparer

template<typename TKey , typename THasher = HashCoder<TKey>, typename TEqualComparer = std::equal_to<TKey>, typename THashBucket = HashBucketDefault>
typedef TEqualComparer momo::HashTraitsStd< TKey, THasher, TEqualComparer, THashBucket >::EqualComparer

◆ HashBucket

template<typename TKey , typename THasher = HashCoder<TKey>, typename TEqualComparer = std::equal_to<TKey>, typename THashBucket = HashBucketDefault>
typedef THashBucket momo::HashTraitsStd< TKey, THasher, TEqualComparer, THashBucket >::HashBucket

◆ Hasher

template<typename TKey , typename THasher = HashCoder<TKey>, typename TEqualComparer = std::equal_to<TKey>, typename THashBucket = HashBucketDefault>
typedef THasher momo::HashTraitsStd< TKey, THasher, TEqualComparer, THashBucket >::Hasher

◆ IsValidKeyArg

template<typename TKey , typename THasher = HashCoder<TKey>, typename TEqualComparer = std::equal_to<TKey>, typename THashBucket = HashBucketDefault>
template<typename KeyArg >
using momo::HashTraitsStd< TKey, THasher, TEqualComparer, THashBucket >::IsValidKeyArg = internal::HashTraitsStdIsValidKeyArg<Hasher, EqualComparer>

◆ Key

template<typename TKey , typename THasher = HashCoder<TKey>, typename TEqualComparer = std::equal_to<TKey>, typename THashBucket = HashBucketDefault>
typedef TKey momo::HashTraitsStd< TKey, THasher, TEqualComparer, THashBucket >::Key

Constructor & Destructor Documentation

◆ HashTraitsStd() [1/2]

template<typename TKey , typename THasher = HashCoder<TKey>, typename TEqualComparer = std::equal_to<TKey>, typename THashBucket = HashBucketDefault>
momo::HashTraitsStd< TKey, THasher, TEqualComparer, THashBucket >::HashTraitsStd ( size_t  startBucketCount = size_t{1} << HashBucket::logStartBucketCount,
const Hasher hasher = Hasher(),
const EqualComparer equalComp = EqualComparer() 
)
inlineexplicit

◆ HashTraitsStd() [2/2]

template<typename TKey , typename THasher = HashCoder<TKey>, typename TEqualComparer = std::equal_to<TKey>, typename THashBucket = HashBucketDefault>
momo::HashTraitsStd< TKey, THasher, TEqualComparer, THashBucket >::HashTraitsStd ( const HashTraitsStd< TKey, THasher, TEqualComparer, THashBucket > &  hashTraits,
float  maxLoadFactor 
)
inline

Member Function Documentation

◆ CalcCapacity()

template<typename TKey , typename THasher = HashCoder<TKey>, typename TEqualComparer = std::equal_to<TKey>, typename THashBucket = HashBucketDefault>
size_t momo::HashTraitsStd< TKey, THasher, TEqualComparer, THashBucket >::CalcCapacity ( size_t  bucketCount,
size_t  bucketMaxItemCount 
) const
inlinenoexcept

◆ GetBucketCountShift()

template<typename TKey , typename THasher = HashCoder<TKey>, typename TEqualComparer = std::equal_to<TKey>, typename THashBucket = HashBucketDefault>
size_t momo::HashTraitsStd< TKey, THasher, TEqualComparer, THashBucket >::GetBucketCountShift ( size_t  bucketCount,
size_t  bucketMaxItemCount 
) const
inlinenoexcept

◆ GetEqualComparer()

template<typename TKey , typename THasher = HashCoder<TKey>, typename TEqualComparer = std::equal_to<TKey>, typename THashBucket = HashBucketDefault>
const EqualComparer& momo::HashTraitsStd< TKey, THasher, TEqualComparer, THashBucket >::GetEqualComparer ( ) const
inlinenoexcept

◆ GetHashCode()

template<typename TKey , typename THasher = HashCoder<TKey>, typename TEqualComparer = std::equal_to<TKey>, typename THashBucket = HashBucketDefault>
template<typename KeyArg >
size_t momo::HashTraitsStd< TKey, THasher, TEqualComparer, THashBucket >::GetHashCode ( const KeyArg &  key) const
inline

◆ GetHasher()

template<typename TKey , typename THasher = HashCoder<TKey>, typename TEqualComparer = std::equal_to<TKey>, typename THashBucket = HashBucketDefault>
const Hasher& momo::HashTraitsStd< TKey, THasher, TEqualComparer, THashBucket >::GetHasher ( ) const
inlinenoexcept

◆ GetLogStartBucketCount()

template<typename TKey , typename THasher = HashCoder<TKey>, typename TEqualComparer = std::equal_to<TKey>, typename THashBucket = HashBucketDefault>
size_t momo::HashTraitsStd< TKey, THasher, TEqualComparer, THashBucket >::GetLogStartBucketCount ( ) const
inlinenoexcept

◆ GetMaxLoadFactor()

template<typename TKey , typename THasher = HashCoder<TKey>, typename TEqualComparer = std::equal_to<TKey>, typename THashBucket = HashBucketDefault>
float momo::HashTraitsStd< TKey, THasher, TEqualComparer, THashBucket >::GetMaxLoadFactor ( size_t  bucketMaxItemCount) const
inlinenoexcept

◆ IsEqual()

template<typename TKey , typename THasher = HashCoder<TKey>, typename TEqualComparer = std::equal_to<TKey>, typename THashBucket = HashBucketDefault>
template<typename KeyArg1 , typename KeyArg2 >
bool momo::HashTraitsStd< TKey, THasher, TEqualComparer, THashBucket >::IsEqual ( const KeyArg1 &  key1,
const KeyArg2 &  key2 
) const
inline

Member Data Documentation

◆ isFastNothrowHashable

template<typename TKey , typename THasher = HashCoder<TKey>, typename TEqualComparer = std::equal_to<TKey>, typename THashBucket = HashBucketDefault>
const bool momo::HashTraitsStd< TKey, THasher, TEqualComparer, THashBucket >::isFastNothrowHashable
static
Initial value:
= IsFastNothrowHashable<Key>::value
&& (std::is_same<Hasher, HashCoder<Key>>::value
|| std::is_same<Hasher, std::hash<Key>>::value)

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