carl  24.04
Computer ARithmetic Library
hash.h File Reference
#include <utility>
#include <vector>
#include <set>
Include dependency graph for hash.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  carl::hash_inserter< T >
 Utility functor to hash a sequence of object using an output iterator. More...
 

Namespaces

 carl
 carl is the main namespace for the library.
 

Functions

void carl::hash_combine (std::size_t &seed, std::size_t value)
 Add a value to the given hash seed. More...
 
template<typename T >
void carl::hash_add (std::size_t &seed, const T &value)
 Add hash of the given value to the hash seed. More...
 
template<>
void carl::hash_add (std::size_t &seed, const std::size_t &value)
 Add hash of the given value to the hash seed. More...
 
template<typename T1 , typename T2 >
void carl::hash_add (std::size_t &seed, const std::pair< T1, T2 > &p)
 Add hash of both elements of a std::pair to the seed. More...
 
template<typename T >
void carl::hash_add (std::size_t &seed, const std::vector< T > &v)
 Add hash of all elements of a std::vector to the seed. More...
 
template<typename T >
void carl::hash_add (std::size_t &seed, const std::set< T > &s)
 
template<typename First , typename... Tail>
void carl::hash_add (std::size_t &seed, const First &value, Tail &&... tail)
 Variadic version of hash_add to add an arbitrary number of values to the seed. More...
 
template<typename... Args>
std::size_t carl::hash_all (Args &&... args)
 Hashes an arbitrary number of values. More...