IOSS 2.0
Loading...
Searching...
No Matches
tsl::detail_hopscotch_hash::hopscotch_bucket< ValueType, NeighborhoodSize, StoreHash > Class Template Reference

#include <hopscotch_hash.h>

Inheritance diagram for tsl::detail_hopscotch_hash::hopscotch_bucket< ValueType, NeighborhoodSize, StoreHash >:
[legend]
Collaboration diagram for tsl::detail_hopscotch_hash::hopscotch_bucket< ValueType, NeighborhoodSize, StoreHash >:
[legend]

Public Types

using value_type = ValueType
 
using neighborhood_bitmap
 

Public Member Functions

 hopscotch_bucket () noexcept
 
 hopscotch_bucket (const hopscotch_bucket &bucket) noexcept(std::is_nothrow_copy_constructible< value_type >::value)
 
 hopscotch_bucket (hopscotch_bucket &&bucket) noexcept(std::is_nothrow_move_constructible< value_type >::value)
 
hopscotch_bucketoperator= (const hopscotch_bucket &bucket) noexcept(std::is_nothrow_copy_constructible< value_type >::value)
 
hopscotch_bucketoperator= (hopscotch_bucket &&)=delete
 
 ~hopscotch_bucket () noexcept
 
neighborhood_bitmap neighborhood_infos () const noexcept
 
void set_overflow (bool has_overflow) noexcept
 
bool has_overflow () const noexcept
 
bool empty () const noexcept
 
void toggle_neighbor_presence (std::size_t ineighbor) noexcept
 
bool check_neighbor_presence (std::size_t ineighbor) const noexcept
 
value_typevalue () noexcept
 
const value_typevalue () const noexcept
 
template<typename... Args>
void set_value_of_empty_bucket (truncated_hash_type my_hash, Args &&...value_type_args)
 
void swap_value_into_empty_bucket (hopscotch_bucket &empty_bucket)
 
void remove_value () noexcept
 
void clear () noexcept
 
- Public Member Functions inherited from tsl::detail_hopscotch_hash::hopscotch_bucket_hash< StoreHash >
bool bucket_hash_equal (std::size_t) const noexcept
 
truncated_hash_type truncated_bucket_hash () const noexcept
 

Static Public Member Functions

static truncated_hash_type truncate_hash (std::size_t my_hash) noexcept
 

Private Types

using bucket_hash = hopscotch_bucket_hash<StoreHash>
 
using storage = typename std::aligned_storage<sizeof(value_type), alignof(value_type)>::type
 

Private Member Functions

void set_empty (bool is_empty) noexcept
 
void destroy_value () noexcept
 

Private Attributes

neighborhood_bitmap m_neighborhood_infos
 
storage m_value
 

Static Private Attributes

static const std::size_t MIN_NEIGHBORHOOD_SIZE = 4
 
static const std::size_t MAX_NEIGHBORHOOD_SIZE
 

Additional Inherited Members

- Protected Member Functions inherited from tsl::detail_hopscotch_hash::hopscotch_bucket_hash< StoreHash >
void copy_hash (const hopscotch_bucket_hash &) noexcept
 
void set_hash (truncated_hash_type) noexcept
 

Member Typedef Documentation

◆ bucket_hash

template<typename ValueType , unsigned int NeighborhoodSize, bool StoreHash>
using tsl::detail_hopscotch_hash::hopscotch_bucket< ValueType, NeighborhoodSize, StoreHash >::bucket_hash = hopscotch_bucket_hash<StoreHash>
private

◆ neighborhood_bitmap

template<typename ValueType , unsigned int NeighborhoodSize, bool StoreHash>
using tsl::detail_hopscotch_hash::hopscotch_bucket< ValueType, NeighborhoodSize, StoreHash >::neighborhood_bitmap
Initial value:
typename smallest_type_for_min_bits<NeighborhoodSize +
static const std::size_t NB_RESERVED_BITS_IN_NEIGHBORHOOD
Definition hopscotch_hash.h:168

◆ storage

template<typename ValueType , unsigned int NeighborhoodSize, bool StoreHash>
using tsl::detail_hopscotch_hash::hopscotch_bucket< ValueType, NeighborhoodSize, StoreHash >::storage = typename std::aligned_storage<sizeof(value_type), alignof(value_type)>::type
private

◆ value_type

template<typename ValueType , unsigned int NeighborhoodSize, bool StoreHash>
using tsl::detail_hopscotch_hash::hopscotch_bucket< ValueType, NeighborhoodSize, StoreHash >::value_type = ValueType

Constructor & Destructor Documentation

◆ hopscotch_bucket() [1/3]

template<typename ValueType , unsigned int NeighborhoodSize, bool StoreHash>
tsl::detail_hopscotch_hash::hopscotch_bucket< ValueType, NeighborhoodSize, StoreHash >::hopscotch_bucket ( )
inlinenoexcept

◆ hopscotch_bucket() [2/3]

template<typename ValueType , unsigned int NeighborhoodSize, bool StoreHash>
tsl::detail_hopscotch_hash::hopscotch_bucket< ValueType, NeighborhoodSize, StoreHash >::hopscotch_bucket ( const hopscotch_bucket< ValueType, NeighborhoodSize, StoreHash > & bucket)
inlinenoexcept

◆ hopscotch_bucket() [3/3]

template<typename ValueType , unsigned int NeighborhoodSize, bool StoreHash>
tsl::detail_hopscotch_hash::hopscotch_bucket< ValueType, NeighborhoodSize, StoreHash >::hopscotch_bucket ( hopscotch_bucket< ValueType, NeighborhoodSize, StoreHash > && bucket)
inlinenoexcept

◆ ~hopscotch_bucket()

template<typename ValueType , unsigned int NeighborhoodSize, bool StoreHash>
tsl::detail_hopscotch_hash::hopscotch_bucket< ValueType, NeighborhoodSize, StoreHash >::~hopscotch_bucket ( )
inlinenoexcept

Member Function Documentation

◆ check_neighbor_presence()

template<typename ValueType , unsigned int NeighborhoodSize, bool StoreHash>
bool tsl::detail_hopscotch_hash::hopscotch_bucket< ValueType, NeighborhoodSize, StoreHash >::check_neighbor_presence ( std::size_t ineighbor) const
inlinenoexcept

◆ clear()

template<typename ValueType , unsigned int NeighborhoodSize, bool StoreHash>
void tsl::detail_hopscotch_hash::hopscotch_bucket< ValueType, NeighborhoodSize, StoreHash >::clear ( )
inlinenoexcept

◆ destroy_value()

template<typename ValueType , unsigned int NeighborhoodSize, bool StoreHash>
void tsl::detail_hopscotch_hash::hopscotch_bucket< ValueType, NeighborhoodSize, StoreHash >::destroy_value ( )
inlineprivatenoexcept

◆ empty()

template<typename ValueType , unsigned int NeighborhoodSize, bool StoreHash>
bool tsl::detail_hopscotch_hash::hopscotch_bucket< ValueType, NeighborhoodSize, StoreHash >::empty ( ) const
inlinenoexcept

◆ has_overflow()

template<typename ValueType , unsigned int NeighborhoodSize, bool StoreHash>
bool tsl::detail_hopscotch_hash::hopscotch_bucket< ValueType, NeighborhoodSize, StoreHash >::has_overflow ( ) const
inlinenoexcept

◆ neighborhood_infos()

template<typename ValueType , unsigned int NeighborhoodSize, bool StoreHash>
neighborhood_bitmap tsl::detail_hopscotch_hash::hopscotch_bucket< ValueType, NeighborhoodSize, StoreHash >::neighborhood_infos ( ) const
inlinenoexcept

◆ operator=() [1/2]

template<typename ValueType , unsigned int NeighborhoodSize, bool StoreHash>
hopscotch_bucket & tsl::detail_hopscotch_hash::hopscotch_bucket< ValueType, NeighborhoodSize, StoreHash >::operator= ( const hopscotch_bucket< ValueType, NeighborhoodSize, StoreHash > & bucket)
inlinenoexcept

◆ operator=() [2/2]

template<typename ValueType , unsigned int NeighborhoodSize, bool StoreHash>
hopscotch_bucket & tsl::detail_hopscotch_hash::hopscotch_bucket< ValueType, NeighborhoodSize, StoreHash >::operator= ( hopscotch_bucket< ValueType, NeighborhoodSize, StoreHash > && )
delete

◆ remove_value()

template<typename ValueType , unsigned int NeighborhoodSize, bool StoreHash>
void tsl::detail_hopscotch_hash::hopscotch_bucket< ValueType, NeighborhoodSize, StoreHash >::remove_value ( )
inlinenoexcept

◆ set_empty()

template<typename ValueType , unsigned int NeighborhoodSize, bool StoreHash>
void tsl::detail_hopscotch_hash::hopscotch_bucket< ValueType, NeighborhoodSize, StoreHash >::set_empty ( bool is_empty)
inlineprivatenoexcept

◆ set_overflow()

template<typename ValueType , unsigned int NeighborhoodSize, bool StoreHash>
void tsl::detail_hopscotch_hash::hopscotch_bucket< ValueType, NeighborhoodSize, StoreHash >::set_overflow ( bool has_overflow)
inlinenoexcept

◆ set_value_of_empty_bucket()

template<typename ValueType , unsigned int NeighborhoodSize, bool StoreHash>
template<typename... Args>
void tsl::detail_hopscotch_hash::hopscotch_bucket< ValueType, NeighborhoodSize, StoreHash >::set_value_of_empty_bucket ( truncated_hash_type my_hash,
Args &&... value_type_args )
inline

◆ swap_value_into_empty_bucket()

template<typename ValueType , unsigned int NeighborhoodSize, bool StoreHash>
void tsl::detail_hopscotch_hash::hopscotch_bucket< ValueType, NeighborhoodSize, StoreHash >::swap_value_into_empty_bucket ( hopscotch_bucket< ValueType, NeighborhoodSize, StoreHash > & empty_bucket)
inline

◆ toggle_neighbor_presence()

template<typename ValueType , unsigned int NeighborhoodSize, bool StoreHash>
void tsl::detail_hopscotch_hash::hopscotch_bucket< ValueType, NeighborhoodSize, StoreHash >::toggle_neighbor_presence ( std::size_t ineighbor)
inlinenoexcept

◆ truncate_hash()

template<typename ValueType , unsigned int NeighborhoodSize, bool StoreHash>
static truncated_hash_type tsl::detail_hopscotch_hash::hopscotch_bucket< ValueType, NeighborhoodSize, StoreHash >::truncate_hash ( std::size_t my_hash)
inlinestaticnoexcept

◆ value() [1/2]

template<typename ValueType , unsigned int NeighborhoodSize, bool StoreHash>
const value_type & tsl::detail_hopscotch_hash::hopscotch_bucket< ValueType, NeighborhoodSize, StoreHash >::value ( ) const
inlinenoexcept

◆ value() [2/2]

template<typename ValueType , unsigned int NeighborhoodSize, bool StoreHash>
value_type & tsl::detail_hopscotch_hash::hopscotch_bucket< ValueType, NeighborhoodSize, StoreHash >::value ( )
inlinenoexcept

Member Data Documentation

◆ m_neighborhood_infos

template<typename ValueType , unsigned int NeighborhoodSize, bool StoreHash>
neighborhood_bitmap tsl::detail_hopscotch_hash::hopscotch_bucket< ValueType, NeighborhoodSize, StoreHash >::m_neighborhood_infos
private

◆ m_value

template<typename ValueType , unsigned int NeighborhoodSize, bool StoreHash>
storage tsl::detail_hopscotch_hash::hopscotch_bucket< ValueType, NeighborhoodSize, StoreHash >::m_value
private

◆ MAX_NEIGHBORHOOD_SIZE

template<typename ValueType , unsigned int NeighborhoodSize, bool StoreHash>
const std::size_t tsl::detail_hopscotch_hash::hopscotch_bucket< ValueType, NeighborhoodSize, StoreHash >::MAX_NEIGHBORHOOD_SIZE
staticprivate
Initial value:
=
static const std::size_t SMALLEST_TYPE_MAX_BITS_SUPPORTED
Definition hopscotch_hash.h:109

◆ MIN_NEIGHBORHOOD_SIZE

template<typename ValueType , unsigned int NeighborhoodSize, bool StoreHash>
const std::size_t tsl::detail_hopscotch_hash::hopscotch_bucket< ValueType, NeighborhoodSize, StoreHash >::MIN_NEIGHBORHOOD_SIZE = 4
staticprivate

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