cds  2.3.2
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 Splitter >
using hash_splitter = cds::intrusive::feldman_hashset::hash_splitter< Splitter >
 Hash splitter. 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 ).

◆ hash_splitter

Hash splitter.

This trait specifies hash bit-string splitter algorithm. By default, cds::algo::number_splitter is used if HashType is a number, cds::algo::split_bitstring otherwise.

cds 2.3.2 Developed by Maxim Khizhinsky aka khizmax and other contributors 2007 - 2017
Autogenerated Sun Dec 31 2017 12:10:32 by Doxygen 1.8.13