dice-hash
Hash function for stl types and container
Loading...
Searching...
No Matches
Classes | Namespaces | Typedefs
DiceHash.hpp File Reference

Home of the DiceHash implementation. More...

#include "dice/hash/internal/Container_trait.hpp"
#include "dice/hash/internal/DiceHashPolicies.hpp"
#include <cstring>
#include <map>
#include <memory>
#include <set>
#include <span>
#include <string>
#include <string_view>
#include <tuple>
#include <unordered_map>
#include <unordered_set>
#include <utility>
#include <variant>
#include <vector>
Include dependency graph for DiceHash.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  dice::hash::dice_hash_overload< Policy, T >
 Helper struct for defining the hash for custom structs. More...
 
struct  dice::hash::dice_hash_overload< Policy, T >::AlwaysFalse< typename >
 Helper type. More...
 
class  dice::hash::dice_hash_templates< Policy >
 Class which contains all dice_hash functions. More...
 
struct  dice::hash::DiceHash< T, Policy >
 Wrapper class for the dice::hash::dice_hash function. More...
 

Namespaces

namespace  dice::hash
 Home of the DiceHash.
 

Typedefs

template<typename T >
using dice::hash::DiceHashMartinus = DiceHash< T, Policies::Martinus >
 
template<typename T >
using dice::hash::DiceHashxxh3 = DiceHash< T, Policies::xxh3 >
 
template<typename T >
using dice::hash::DiceHashwyhash = DiceHash< T, Policies::wyhash >
 

Detailed Description

Home of the DiceHash implementation.

To speed up tests of the Hypertrie and Tentris we needed to be able to serialize a Hypertrie and save it. However the last hash function was not "stable", i.e. it chose two different random seeds, so the results differed. Because of that (and to not worry about versioning problems) this hash function was created.