## CGAL::Handle_hash_function

### Definition

The class Handle_hash_function is a model for the UniqueHasFunction concept. It is applicable for all key types with pointer-like functionality, such as handles, iterators, and circulators. Specificaly, for a key value the expression &*key must return a unique address.

#include <CGAL/Handle_hash_function.h>

### Is Model for the Concept

UniqueHashFunction

### Creation

Handle_hash_function hash;
| default constructor.

### Operations

template <class Handle>
std::size_t | hash ( Handle key)
|  | returns unique hash value for any Handle type for which &*key gives a unique address. Requirement: The type std::iterator_traits<Handle>::value_type has to be defined (which it is already for pointers, handles, iterators, and circulators).

### See Also

CGAL::Unique_hash_map<Key,Data,UniqueHashFunction>

### Implementation

Plain type cast of &*key to std::size_t and devided by the size of the std::iterator_traits<Handle>::value_type to avoid correlations with the internal table size, which is a power of two.