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

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

#include <cds/container/details/cuckoo_base.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::container::cuckoo::make_traits< Options >

Metafunction converting option list to CuckooSet/CuckooMap traits.

Template argument list Options... are:

  • 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 opt::v::sequential_item_counter.
  • opt::allocator - the allocator type using for allocating bucket tables. Default is CDS_DEFAULT_ALLOCATOR
  • opt::node_allocator - the allocator type using for allocating set's items. If this option is not specified then the type defined in opt::allocator option is used.
  • cuckoo::store_hash - this option reserves additional space in the node to store the hash value of the object once it's introduced in the container. When this option is used, the unordered container will store the calculated hash value in the node and rehashing operations won't need to recalculate the hash of the value. This option will improve the performance of unordered containers when rehashing is frequent or hashing the value is a slow operation. Default value is false.
  • cuckoo::probeset_type - type of probe set, may be cuckoo::list or cuckoo::vector<Capacity>, Default is cuckoo::list.
  • opt::stat - internal statistics. Possibly types: cuckoo::stat, cuckoo::empty_stat. Default is cuckoo::empty_stat

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:31 by Doxygen 1.8.13