cds  2.2.0
cds::container::feldman_hashset Namespace Reference

FeldmanHashSet related definitions More...

Data Structures

struct  make_traits
 Metafunction converting option list to feldman_hashset::traits. More...
struct  traits
 FeldmanHashSet traits More...


template<typename Accessor >
using hash_accessor = cds::intrusive::feldman_hashset::hash_accessor< Accessor >
 Hash accessor option. More...
template<size_t Size>
using hash_size = cds::intrusive::feldman_hashset::hash_size< Size >
 Hash size option. More...
template<typename EventCounter = cds::atomicity::event_counter>
using stat = cds::intrusive::feldman_hashset::stat< EventCounter >
 FeldmanHashSet internal statistics, see cds::intrusive::feldman_hashset::stat
typedef cds::intrusive::feldman_hashset::empty_stat empty_stat
 FeldmanHashSet empty internal statistics
template<typename T >
using bitwise_compare = cds::intrusive::feldman_hashset::bitwise_compare< T >
 Bit-wise memcmp-based comparator for hash value T.
typedef cds::intrusive::feldman_hashset::level_statistics level_statistics
 FeldmanHashSet level statistics

Detailed Description

FeldmanHashSet related definitions

Typedef Documentation

§ hash_accessor

Hash accessor option.

It is most-important feature of FeldmanHashSet. That functor must return a reference to fixed-sized hash value of data node. The return value of that functor specifies the type of hash value.


typedef uint8_t hash_type[32]; // 256-bit hash type
struct foo {
hash_type hash; // 256-bit hash value
// ... other fields
// Hash accessor
struct foo_hash_accessor {
hash_type const& operator()( foo const& d ) const
return d.hash;

§ hash_size

Hash size option.

By default, the size of hash value is sizeof( hash_type ). Sometimes it is not correct, for example, for that 6-byte struct static_assert will be thrown:

struct key_type {
uint32_t key1;
uint16_t subkey;
static_assert( sizeof( key_type ) == 6, "Key type size mismatch" );

For that case you can specify hash_size explicitly.

Value 0 means sizeof( hash_type ).

cds 2.2.0 Developed by Maxim Khizhinsky aka khizmax 2007 - 2017
Autogenerated Wed Jan 4 2017 08:49:46 by Doxygen 1.8.12