ModErn Text Analysis
META Enumerates Textual Applications
Public Types | List of all members
meta::hashing::hash_traits< kv_pair< K, V > > Struct Template Reference

Specialization of hash_traits for the hash table classes, and is implemented by delegating to hash_traits<T> for the types inside the pair to be stored. More...

#include <hash_traits.h>

Public Types

template<class ProbingStrategy , class Hash , class KeyEqual >
using key_inlineable_storage = typename std::conditional< sizeof(V)<=8, inline_key_value_storage< K, V, ProbingStrategy, Hash, KeyEqual >, inline_key_external_value_storage< K, V, ProbingStrategy, Hash, KeyEqual >>::type
 
template<class ProbingStrategy , class Hash , class KeyEqual >
using storage_type = typename std::conditional< key_traits< K >::inlineable, key_inlineable_storage< ProbingStrategy, Hash, KeyEqual >, external_key_value_storage< K, V, ProbingStrategy, Hash, KeyEqual >>::type
 
using key_inlineable_probe_entry = typename std::conditional< sizeof(V)<=8, std::pair< K, V >, std::pair< K, std::size_t >>::type
 
using probe_entry = typename std::conditional< key_traits< K >::inlineable, key_inlineable_probe_entry, hash_idx >::type
 

Detailed Description

template<class K, class V>
struct meta::hashing::hash_traits< kv_pair< K, V > >

Specialization of hash_traits for the hash table classes, and is implemented by delegating to hash_traits<T> for the types inside the pair to be stored.

This specialization provides the following members:

Typically, you should only have to specialize hash_traits<K> and hash_traits<V> for the K, V pair types you care about, but you may choose to provide a specialization for a specific kv_pair<K, V> if you so desire.


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