Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Private Types | Private Member Functions | Private Attributes | List of all members
tsl::detail_robin_hash::bucket_entry< ValueType, StoreHash > Class Template Reference

#include <robin_hash.h>

Inheritance diagram for tsl::detail_robin_hash::bucket_entry< ValueType, StoreHash >:
Inheritance graph
[legend]

Public Types

using distance_type = std::int16_t
 
using value_type = ValueType
 

Public Member Functions

 bucket_entry () noexcept
 
 bucket_entry (bool last_bucket) noexcept
 
 bucket_entry (bucket_entry &&other) noexcept(std::is_nothrow_move_constructible< value_type >::value)
 
 bucket_entry (const bucket_entry &other) noexcept(std::is_nothrow_copy_constructible< value_type >::value)
 
void clear () noexcept
 
distance_type dist_from_ideal_bucket () const noexcept
 
bool empty () const noexcept
 
bool last_bucket () const noexcept
 
bucket_entryoperator= (bucket_entry &&)=delete
 
bucket_entryoperator= (const bucket_entry &other) noexcept(std::is_nothrow_copy_constructible< value_type >::value)
 
void set_as_last_bucket () noexcept
 
template<typename... Args>
void set_value_of_empty_bucket (distance_type dist_from_ideal_bucket, truncated_hash_type hash, Args &&... value_type_args)
 
void swap_with_value_in_bucket (distance_type &dist_from_ideal_bucket, truncated_hash_type &hash, value_type &value)
 
const value_typevalue () const noexcept
 
value_typevalue () noexcept
 
 ~bucket_entry () noexcept
 
- Public Member Functions inherited from tsl::detail_robin_hash::bucket_entry_hash< StoreHash >
bool bucket_hash_equal (std::size_t) const noexcept
 
truncated_hash_type truncated_hash () const noexcept
 

Static Public Member Functions

static truncated_hash_type truncate_hash (std::size_t hash) noexcept
 

Static Public Attributes

static const distance_type DIST_FROM_IDEAL_BUCKET_LIMIT = 8192
 
static const distance_type EMPTY_MARKER_DIST_FROM_IDEAL_BUCKET = -1
 

Private Types

using bucket_hash = bucket_entry_hash< StoreHash >
 

Private Member Functions

void destroy_value () noexcept
 

Private Attributes

distance_type m_dist_from_ideal_bucket
 
bool m_last_bucket
 
unsigned char m_value [sizeof(value_type)]
 

Additional Inherited Members

- Protected Member Functions inherited from tsl::detail_robin_hash::bucket_entry_hash< StoreHash >
void set_hash (truncated_hash_type) noexcept
 

Detailed Description

template<typename ValueType, bool StoreHash>
class tsl::detail_robin_hash::bucket_entry< ValueType, StoreHash >

Each bucket entry has:

Definition at line 170 of file robin_hash.h.

Member Typedef Documentation

◆ bucket_hash

template<typename ValueType , bool StoreHash>
using tsl::detail_robin_hash::bucket_entry< ValueType, StoreHash >::bucket_hash = bucket_entry_hash<StoreHash>
private

Definition at line 171 of file robin_hash.h.

◆ distance_type

template<typename ValueType , bool StoreHash>
using tsl::detail_robin_hash::bucket_entry< ValueType, StoreHash >::distance_type = std::int16_t

Definition at line 175 of file robin_hash.h.

◆ value_type

template<typename ValueType , bool StoreHash>
using tsl::detail_robin_hash::bucket_entry< ValueType, StoreHash >::value_type = ValueType

Definition at line 174 of file robin_hash.h.

Constructor & Destructor Documentation

◆ bucket_entry() [1/4]

template<typename ValueType , bool StoreHash>
tsl::detail_robin_hash::bucket_entry< ValueType, StoreHash >::bucket_entry ( )
inlinenoexcept

Definition at line 177 of file robin_hash.h.

◆ bucket_entry() [2/4]

template<typename ValueType , bool StoreHash>
tsl::detail_robin_hash::bucket_entry< ValueType, StoreHash >::bucket_entry ( bool  last_bucket)
inlinenoexcept

Definition at line 184 of file robin_hash.h.

◆ bucket_entry() [3/4]

template<typename ValueType , bool StoreHash>
tsl::detail_robin_hash::bucket_entry< ValueType, StoreHash >::bucket_entry ( const bucket_entry< ValueType, StoreHash > &  other)
inlinenoexcept

Definition at line 191 of file robin_hash.h.

◆ bucket_entry() [4/4]

template<typename ValueType , bool StoreHash>
tsl::detail_robin_hash::bucket_entry< ValueType, StoreHash >::bucket_entry ( bucket_entry< ValueType, StoreHash > &&  other)
inlinenoexcept

Never really used, but still necessary as we must call resize on an empty std::vector<bucket_entry>. and we need to support move-only types. See robin_hash constructor for details.

Definition at line 209 of file robin_hash.h.

◆ ~bucket_entry()

template<typename ValueType , bool StoreHash>
tsl::detail_robin_hash::bucket_entry< ValueType, StoreHash >::~bucket_entry ( )
inlinenoexcept

Definition at line 242 of file robin_hash.h.

Member Function Documentation

◆ clear()

template<typename ValueType , bool StoreHash>
void tsl::detail_robin_hash::bucket_entry< ValueType, StoreHash >::clear ( )
inlinenoexcept

Definition at line 244 of file robin_hash.h.

◆ destroy_value()

template<typename ValueType , bool StoreHash>
void tsl::detail_robin_hash::bucket_entry< ValueType, StoreHash >::destroy_value ( )
inlineprivatenoexcept

Definition at line 322 of file robin_hash.h.

◆ dist_from_ideal_bucket()

template<typename ValueType , bool StoreHash>
distance_type tsl::detail_robin_hash::bucket_entry< ValueType, StoreHash >::dist_from_ideal_bucket ( ) const
inlinenoexcept

Definition at line 275 of file robin_hash.h.

◆ empty()

template<typename ValueType , bool StoreHash>
bool tsl::detail_robin_hash::bucket_entry< ValueType, StoreHash >::empty ( ) const
inlinenoexcept

Definition at line 251 of file robin_hash.h.

◆ last_bucket()

template<typename ValueType , bool StoreHash>
bool tsl::detail_robin_hash::bucket_entry< ValueType, StoreHash >::last_bucket ( ) const
inlinenoexcept

Definition at line 279 of file robin_hash.h.

◆ operator=() [1/2]

template<typename ValueType , bool StoreHash>
bucket_entry& tsl::detail_robin_hash::bucket_entry< ValueType, StoreHash >::operator= ( bucket_entry< ValueType, StoreHash > &&  )
delete

◆ operator=() [2/2]

template<typename ValueType , bool StoreHash>
bucket_entry& tsl::detail_robin_hash::bucket_entry< ValueType, StoreHash >::operator= ( const bucket_entry< ValueType, StoreHash > &  other)
inlinenoexcept

Definition at line 222 of file robin_hash.h.

◆ set_as_last_bucket()

template<typename ValueType , bool StoreHash>
void tsl::detail_robin_hash::bucket_entry< ValueType, StoreHash >::set_as_last_bucket ( )
inlinenoexcept

Definition at line 281 of file robin_hash.h.

◆ set_value_of_empty_bucket()

template<typename ValueType , bool StoreHash>
template<typename... Args>
void tsl::detail_robin_hash::bucket_entry< ValueType, StoreHash >::set_value_of_empty_bucket ( distance_type  dist_from_ideal_bucket,
truncated_hash_type  hash,
Args &&...  value_type_args 
)
inline

Definition at line 284 of file robin_hash.h.

◆ swap_with_value_in_bucket()

template<typename ValueType , bool StoreHash>
void tsl::detail_robin_hash::bucket_entry< ValueType, StoreHash >::swap_with_value_in_bucket ( distance_type dist_from_ideal_bucket,
truncated_hash_type hash,
value_type value 
)
inline

Definition at line 298 of file robin_hash.h.

◆ truncate_hash()

template<typename ValueType , bool StoreHash>
static truncated_hash_type tsl::detail_robin_hash::bucket_entry< ValueType, StoreHash >::truncate_hash ( std::size_t  hash)
inlinestaticnoexcept

Definition at line 317 of file robin_hash.h.

◆ value() [1/2]

template<typename ValueType , bool StoreHash>
const value_type& tsl::detail_robin_hash::bucket_entry< ValueType, StoreHash >::value ( ) const
inlinenoexcept

Definition at line 265 of file robin_hash.h.

◆ value() [2/2]

template<typename ValueType , bool StoreHash>
value_type& tsl::detail_robin_hash::bucket_entry< ValueType, StoreHash >::value ( )
inlinenoexcept

Definition at line 255 of file robin_hash.h.

Member Data Documentation

◆ DIST_FROM_IDEAL_BUCKET_LIMIT

template<typename ValueType , bool StoreHash>
const distance_type tsl::detail_robin_hash::bucket_entry< ValueType, StoreHash >::DIST_FROM_IDEAL_BUCKET_LIMIT = 8192
static

Definition at line 329 of file robin_hash.h.

◆ EMPTY_MARKER_DIST_FROM_IDEAL_BUCKET

template<typename ValueType , bool StoreHash>
const distance_type tsl::detail_robin_hash::bucket_entry< ValueType, StoreHash >::EMPTY_MARKER_DIST_FROM_IDEAL_BUCKET = -1
static

Definition at line 328 of file robin_hash.h.

◆ m_dist_from_ideal_bucket

template<typename ValueType , bool StoreHash>
distance_type tsl::detail_robin_hash::bucket_entry< ValueType, StoreHash >::m_dist_from_ideal_bucket
private

Definition at line 333 of file robin_hash.h.

◆ m_last_bucket

template<typename ValueType , bool StoreHash>
bool tsl::detail_robin_hash::bucket_entry< ValueType, StoreHash >::m_last_bucket
private

Definition at line 337 of file robin_hash.h.

◆ m_value

template<typename ValueType , bool StoreHash>
unsigned char tsl::detail_robin_hash::bucket_entry< ValueType, StoreHash >::m_value[sizeof(value_type)]
private

Definition at line 338 of file robin_hash.h.


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


mp2p_icp
Author(s): Jose-Luis Blanco-Claraco
autogenerated on Wed Jun 26 2024 02:47:11