cds  2.3.2
cds::intrusive::cuckoo::make_traits< Options > Struct Template Reference

Metafunction converting option list to CuckooSet traits. More...

#include <cds/intrusive/cuckoo_set.h>

Public Types

typedef cds::opt::make_options< typename cds::opt::find_type_traits< cuckoo::traits, Options... >::type,Options... >::type type
 Result of metafunction.
 

Detailed Description

template<typename... Options>
struct cds::intrusive::cuckoo::make_traits< Options >

Metafunction converting option list to CuckooSet traits.

Template argument list Options... are:

  • intrusive::opt::hook - hook used. Possible values are: cuckoo::base_hook, cuckoo::member_hook, cuckoo::traits_hook. If the option is not specified, cuckoo::base_hook<> is used.
  • opt::hash - hash functor tuple, mandatory option. At least, two hash functors should be provided. All hash functor should be orthogonal (different): for each i,j: i != j => h[i](x) != h[j](x) . The hash functors are passed as std::tuple< H1, H2, ... Hn > . The number of hash functors specifies the number k - the count of hash tables in cuckoo hashing.
  • opt::mutex_policy - concurrent access policy. Available policies: cuckoo::striping, cuckoo::refinable. Default is cuckoo::striping.
  • opt::equal_to - key equality functor like std::equal_to. If this functor is defined then the probe-set will be unordered. If opt::compare or opt::less option is specified too, then the probe-set will be ordered and opt::equal_to will be ignored.
  • opt::compare - key comparison functor. No default functor is provided. If the option is not specified, the opt::less is used. If opt::compare or opt::less option is specified, then the probe-set will be ordered.
  • opt::less - specifies binary predicate used for key comparison. Default is std::less<T>. If opt::compare or opt::less option is specified, then the probe-set will be ordered.
  • opt::item_counter - the type of item counting feature. Default is atomicity::item_counter The item counter should be atomic.
  • opt::allocator - the allocator type using for allocating bucket tables. Default is CDS_DEFAULT_ALLOCATOR
  • intrusive::opt::disposer - the disposer type used in clear() member function for freeing nodes. Default is intrusive::opt::v::empty_disposer
  • opt::stat - internal statistics. Possibly types: cuckoo::stat, cuckoo::empty_stat. Default is cuckoo::empty_stat

The probe set traits cuckoo::probeset_type and cuckoo::store_hash are taken from node type specified by opt::hook option.


The documentation for this struct was generated from the following file:

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