momo  3.11
momo::HashTraits< TKey, THashBucket, TBaseKeyArg > Class Template Reference

#include <HashTraits.h>

Public Types

typedef TKey Key
 
typedef THashBucket HashBucket
 
typedef TBaseKeyArg BaseKeyArg
 
template<typename ItemTraits >
using Bucket = typename HashBucket::template Bucket< ItemTraits, !isFastNothrowHashable >
 
template<typename KeyArg >
using IsValidKeyArg = typename std::conditional< std::is_same< BaseKeyArg, Key >::value, std::false_type, std::is_convertible< const KeyArg &, const BaseKeyArg & > >::type
 

Public Member Functions

 HashTraits () noexcept
 
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
 

Static Public Attributes

static const bool isFastNothrowHashable = IsFastNothrowHashable<BaseKeyArg>::value
 

Member Typedef Documentation

◆ BaseKeyArg

template<typename TKey , typename THashBucket = HashBucketDefault, typename TBaseKeyArg = TKey>
typedef TBaseKeyArg momo::HashTraits< TKey, THashBucket, TBaseKeyArg >::BaseKeyArg

◆ Bucket

template<typename TKey , typename THashBucket = HashBucketDefault, typename TBaseKeyArg = TKey>
template<typename ItemTraits >
using momo::HashTraits< TKey, THashBucket, TBaseKeyArg >::Bucket = typename HashBucket::template Bucket<ItemTraits, !isFastNothrowHashable>

◆ HashBucket

template<typename TKey , typename THashBucket = HashBucketDefault, typename TBaseKeyArg = TKey>
typedef THashBucket momo::HashTraits< TKey, THashBucket, TBaseKeyArg >::HashBucket

◆ IsValidKeyArg

template<typename TKey , typename THashBucket = HashBucketDefault, typename TBaseKeyArg = TKey>
template<typename KeyArg >
using momo::HashTraits< TKey, THashBucket, TBaseKeyArg >::IsValidKeyArg = typename std::conditional<std::is_same<BaseKeyArg, Key>::value, std::false_type, std::is_convertible<const KeyArg&, const BaseKeyArg&> >::type

◆ Key

template<typename TKey , typename THashBucket = HashBucketDefault, typename TBaseKeyArg = TKey>
typedef TKey momo::HashTraits< TKey, THashBucket, TBaseKeyArg >::Key

Constructor & Destructor Documentation

◆ HashTraits()

template<typename TKey , typename THashBucket = HashBucketDefault, typename TBaseKeyArg = TKey>
momo::HashTraits< TKey, THashBucket, TBaseKeyArg >::HashTraits ( )
inlineexplicitnoexcept

Member Function Documentation

◆ CalcCapacity()

template<typename TKey , typename THashBucket = HashBucketDefault, typename TBaseKeyArg = TKey>
size_t momo::HashTraits< TKey, THashBucket, TBaseKeyArg >::CalcCapacity ( size_t  bucketCount,
size_t  bucketMaxItemCount 
) const
inlinenoexcept

◆ GetBucketCountShift()

template<typename TKey , typename THashBucket = HashBucketDefault, typename TBaseKeyArg = TKey>
size_t momo::HashTraits< TKey, THashBucket, TBaseKeyArg >::GetBucketCountShift ( size_t  bucketCount,
size_t  bucketMaxItemCount 
) const
inlinenoexcept

◆ GetHashCode()

template<typename TKey , typename THashBucket = HashBucketDefault, typename TBaseKeyArg = TKey>
template<typename KeyArg >
size_t momo::HashTraits< TKey, THashBucket, TBaseKeyArg >::GetHashCode ( const KeyArg &  key) const
inline

◆ GetLogStartBucketCount()

template<typename TKey , typename THashBucket = HashBucketDefault, typename TBaseKeyArg = TKey>
size_t momo::HashTraits< TKey, THashBucket, TBaseKeyArg >::GetLogStartBucketCount ( ) const
inlinenoexcept

◆ IsEqual()

template<typename TKey , typename THashBucket = HashBucketDefault, typename TBaseKeyArg = TKey>
template<typename KeyArg1 , typename KeyArg2 >
bool momo::HashTraits< TKey, THashBucket, TBaseKeyArg >::IsEqual ( const KeyArg1 &  key1,
const KeyArg2 &  key2 
) const
inline

Member Data Documentation

◆ isFastNothrowHashable

template<typename TKey , typename THashBucket = HashBucketDefault, typename TBaseKeyArg = TKey>
const bool momo::HashTraits< TKey, THashBucket, TBaseKeyArg >::isFastNothrowHashable = IsFastNothrowHashable<BaseKeyArg>::value
static

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