gmsh-TingyuanDoc  0.1
An Open-Source Timing-driven Analytical Mixed-size FPGA Placer
robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual > Class Template Reference

#include <robin_hood.h>

Inheritance diagram for robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >:
Collaboration diagram for robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >:

Classes

struct  Cloner
 
struct  Cloner< M, false >
 
struct  Cloner< M, true >
 
class  DataNode
 
class  DataNode< M, false >
 
class  DataNode< M, true >
 
struct  Destroyer
 
struct  Destroyer< M, false >
 
struct  Destroyer< M, true >
 
struct  fast_forward_tag
 
class  Iter
 

Public Types

using key_type = Key
 
using mapped_type = T
 
using value_type = typename std::conditional< is_set, Key, robin_hood::pair< typename std::conditional< is_flat, Key, Key const >::type, T > >::type
 
using size_type = size_t
 
using hasher = Hash
 
using key_equal = KeyEqual
 
using Self = Table< IsFlat, MaxLoadFactor100, key_type, mapped_type, hasher, key_equal >
 
using iterator = Iter< false >
 
using const_iterator = Iter< true >
 

Public Member Functions

 Table () noexcept(noexcept(Hash()) &&noexcept(KeyEqual()))
 
 Table (size_t ROBIN_HOOD_UNUSED(bucket_count), const Hash &h=Hash{}, const KeyEqual &equal=KeyEqual{}) noexcept(noexcept(Hash(h)) &&noexcept(KeyEqual(equal)))
 
template<typename Iter >
 Table (Iter first, Iter last, size_t ROBIN_HOOD_UNUSED(bucket_count)=0, const Hash &h=Hash{}, const KeyEqual &equal=KeyEqual{})
 
 Table (std::initializer_list< value_type > initlist, size_t ROBIN_HOOD_UNUSED(bucket_count)=0, const Hash &h=Hash{}, const KeyEqual &equal=KeyEqual{})
 
 Table (Table &&o) noexcept
 
Tableoperator= (Table &&o) noexcept
 
 Table (const Table &o)
 
Tableoperator= (Table const &o)
 
void swap (Table &o)
 
void clear ()
 
 ~Table ()
 
bool operator== (const Table &other) const
 
bool operator!= (const Table &other) const
 
template<typename Q = mapped_type>
std::enable_if<!std::is_void< Q >::value, Q & >::type operator[] (const key_type &key)
 
template<typename Q = mapped_type>
std::enable_if<!std::is_void< Q >::value, Q & >::type operator[] (key_type &&key)
 
template<typename Iter >
void insert (Iter first, Iter last)
 
void insert (std::initializer_list< value_type > ilist)
 
template<typename... Args>
std::pair< iterator, bool > emplace (Args &&... args)
 
template<typename... Args>
std::pair< iterator, bool > try_emplace (const key_type &key, Args &&... args)
 
template<typename... Args>
std::pair< iterator, bool > try_emplace (key_type &&key, Args &&... args)
 
template<typename... Args>
std::pair< iterator, bool > try_emplace (const_iterator hint, const key_type &key, Args &&... args)
 
template<typename... Args>
std::pair< iterator, bool > try_emplace (const_iterator hint, key_type &&key, Args &&... args)
 
template<typename Mapped >
std::pair< iterator, bool > insert_or_assign (const key_type &key, Mapped &&obj)
 
template<typename Mapped >
std::pair< iterator, bool > insert_or_assign (key_type &&key, Mapped &&obj)
 
template<typename Mapped >
std::pair< iterator, bool > insert_or_assign (const_iterator hint, const key_type &key, Mapped &&obj)
 
template<typename Mapped >
std::pair< iterator, bool > insert_or_assign (const_iterator hint, key_type &&key, Mapped &&obj)
 
std::pair< iterator, bool > insert (const value_type &keyval)
 
std::pair< iterator, bool > insert (value_type &&keyval)
 
size_t count (const key_type &key) const
 
template<typename OtherKey , typename Self_ = Self>
std::enable_if< Self_::is_transparent, size_t >::type count (const OtherKey &key) const
 
bool contains (const key_type &key) const
 
template<typename OtherKey , typename Self_ = Self>
std::enable_if< Self_::is_transparent, bool >::type contains (const OtherKey &key) const
 
template<typename Q = mapped_type>
std::enable_if<!std::is_void< Q >::value, Q & >::type at (key_type const &key)
 
template<typename Q = mapped_type>
std::enable_if<!std::is_void< Q >::value, Q const & >::type at (key_type const &key) const
 
const_iterator find (const key_type &key) const
 
template<typename OtherKey >
const_iterator find (const OtherKey &key, is_transparent_tag) const
 
template<typename OtherKey , typename Self_ = Self>
std::enable_if< Self_::is_transparent, const_iterator >::type find (const OtherKey &key) const
 
iterator find (const key_type &key)
 
template<typename OtherKey >
iterator find (const OtherKey &key, is_transparent_tag)
 
template<typename OtherKey , typename Self_ = Self>
std::enable_if< Self_::is_transparent, iterator >::type find (const OtherKey &key)
 
iterator begin ()
 
const_iterator begin () const
 
const_iterator cbegin () const
 
iterator end ()
 
const_iterator end () const
 
const_iterator cend () const
 
iterator erase (const_iterator pos)
 
iterator erase (iterator pos)
 
size_t erase (const key_type &key)
 
void rehash (size_t c)
 
void reserve (size_t c)
 
void compact ()
 
size_type size () const noexcept
 
size_type max_size () const noexcept
 
 ROBIN_HOOD (NODISCARD) bool empty() const noexcept
 
float max_load_factor () const noexcept
 
float load_factor () const noexcept
 
 ROBIN_HOOD (NODISCARD) size_t mask() const noexcept
 
 ROBIN_HOOD (NODISCARD) size_t calcMaxNumElementsAllowed(size_t maxElements) const noexcept
 
 ROBIN_HOOD (NODISCARD) size_t calcNumBytesInfo(size_t numElements) const noexcept
 
size_t calcNumElementsWithBuffer (size_t numElements) const noexcept
 
 ROBIN_HOOD (NODISCARD) size_t calcNumBytesTotal(size_t numElements) const
 
- Public Member Functions inherited from robin_hood::detail::WrapHash< Hash >
 WrapHash ()=default
 
 WrapHash (Hash const &o) noexcept(noexcept(Hash(std::declval< Hash const & >())))
 
- Public Member Functions inherited from robin_hood::detail::WrapKeyEqual< KeyEqual >
 WrapKeyEqual ()=default
 
 WrapKeyEqual (KeyEqual const &o) noexcept(noexcept(KeyEqual(std::declval< KeyEqual const & >())))
 

Static Public Attributes

static constexpr bool is_flat = IsFlat
 
static constexpr bool is_map = !std::is_void<T>::value
 
static constexpr bool is_set = !is_map
 
static constexpr bool is_transparent
 

Private Types

enum  InsertionState { InsertionState::overflow_error, InsertionState::key_found, InsertionState::new_node, InsertionState::overwrite_node }
 
using WHash = WrapHash< Hash >
 
using WKeyEqual = WrapKeyEqual< KeyEqual >
 
using DataPool = detail::NodeAllocator< value_type, 4, 16384, IsFlat >
 
using InfoType = uint32_t
 
using Node = DataNode< Self, IsFlat >
 

Private Member Functions

 ROBIN_HOOD (NODISCARD) key_type const &getFirstConst(Node const &n) const noexcept
 
 ROBIN_HOOD (NODISCARD) key_type const &getFirstConst(key_type const &k) const noexcept
 
template<typename Q = mapped_type>
std::enable_if<!std::is_void< Q >::value, key_type const & >::type getFirstConst (value_type const &vt) const noexcept
 
template<typename HashKey >
void keyToIdx (HashKey &&key, size_t *idx, InfoType *info) const
 
void next (InfoType *info, size_t *idx) const noexcept
 
void nextWhileLess (InfoType *info, size_t *idx) const noexcept
 
void shiftUp (size_t startIdx, size_t const insertion_idx) noexcept(std::is_nothrow_move_assignable< Node >::value)
 
void shiftDown (size_t idx) noexcept(std::is_nothrow_move_assignable< Node >::value)
 
template<typename Other >
size_t findIdx (Other const &key) const
 
void cloneData (const Table &o)
 
void insert_move (Node &&keyval)
 
template<typename Q = mapped_type>
std::enable_if<!std::is_void< Q >::value, bool >::type has (const value_type &e) const
 
template<typename Q = mapped_type>
std::enable_if< std::is_void< Q >::value, bool >::type has (const value_type &e) const
 
void reserve (size_t c, bool forceRehash)
 
void rehashPowerOfTwo (size_t numBuckets, bool forceFree)
 
 ROBIN_HOOD (NOINLINE) void throwOverflowError() const
 
template<typename OtherKey , typename... Args>
std::pair< iterator, bool > try_emplace_impl (OtherKey &&key, Args &&... args)
 
template<typename OtherKey , typename Mapped >
std::pair< iterator, bool > insertOrAssignImpl (OtherKey &&key, Mapped &&obj)
 
void initData (size_t max_elements)
 
template<typename OtherKey >
std::pair< size_t, InsertionStateinsertKeyPrepareEmptySpot (OtherKey &&key)
 
bool try_increase_info ()
 
bool increase_size ()
 
void nextHashMultiplier ()
 
void destroy ()
 
void init () noexcept
 

Private Attributes

uint64_t mHashMultiplier = UINT64_C(0xc4ceb9fe1a85ec53)
 
NodemKeyVals = reinterpret_cast_no_cast_align_warning<Node*>(&mMask)
 
uint8_t * mInfo = reinterpret_cast<uint8_t*>(&mMask)
 
size_t mNumElements = 0
 
size_t mMask = 0
 
size_t mMaxNumElementsAllowed = 0
 
InfoType mInfoInc = InitialInfoInc
 
InfoType mInfoHashShift = InitialInfoHashShift
 

Static Private Attributes

static constexpr size_t InitialNumElements = sizeof(uint64_t)
 
static constexpr uint32_t InitialInfoNumBits = 5
 
static constexpr uint8_t InitialInfoInc = 1U << InitialInfoNumBits
 
static constexpr size_t InfoMask = InitialInfoInc - 1U
 
static constexpr uint8_t InitialInfoHashShift = 0
 

Detailed Description

template<bool IsFlat, size_t MaxLoadFactor100, typename Key, typename T, typename Hash, typename KeyEqual>
class robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >

Definition at line 909 of file robin_hood.h.

Member Typedef Documentation

◆ const_iterator

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
using robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::const_iterator = Iter<true>

Definition at line 1495 of file robin_hood.h.

◆ DataPool

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
using robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::DataPool = detail::NodeAllocator<value_type, 4, 16384, IsFlat>
private

Definition at line 949 of file robin_hood.h.

◆ hasher

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
using robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::hasher = Hash

Definition at line 930 of file robin_hood.h.

◆ InfoType

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
using robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::InfoType = uint32_t
private

Definition at line 952 of file robin_hood.h.

◆ iterator

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
using robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::iterator = Iter<false>

Definition at line 1494 of file robin_hood.h.

◆ key_equal

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
using robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::key_equal = KeyEqual

Definition at line 931 of file robin_hood.h.

◆ key_type

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
using robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::key_type = Key

Definition at line 924 of file robin_hood.h.

◆ mapped_type

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
using robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::mapped_type = T

Definition at line 925 of file robin_hood.h.

◆ Node

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
using robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::Node = DataNode<Self, IsFlat>
private

Definition at line 1121 of file robin_hood.h.

◆ Self

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
using robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::Self = Table<IsFlat, MaxLoadFactor100, key_type, mapped_type, hasher, key_equal>

Definition at line 932 of file robin_hood.h.

◆ size_type

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
using robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::size_type = size_t

Definition at line 929 of file robin_hood.h.

◆ value_type

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
using robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::value_type = typename std::conditional< is_set, Key, robin_hood::pair<typename std::conditional<is_flat, Key, Key const>::type, T> >::type

Definition at line 926 of file robin_hood.h.

◆ WHash

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
using robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::WHash = WrapHash<Hash>
private

Definition at line 938 of file robin_hood.h.

◆ WKeyEqual

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
using robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::WKeyEqual = WrapKeyEqual<KeyEqual>
private

Definition at line 939 of file robin_hood.h.

Member Enumeration Documentation

◆ InsertionState

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
enum robin_hood::detail::Table::InsertionState
strongprivate
Enumerator
overflow_error 
key_found 
new_node 
overwrite_node 

Definition at line 2326 of file robin_hood.h.

Constructor & Destructor Documentation

◆ Table() [1/6]

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::Table ( )
inlinenoexcept

Definition at line 1497 of file robin_hood.h.

◆ Table() [2/6]

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::Table ( size_t   ROBIN_HOOD_UNUSEDbucket_count,
const Hash &  h = Hash{},
const KeyEqual &  equal = KeyEqual{} 
)
inlineexplicitnoexcept

Definition at line 1508 of file robin_hood.h.

◆ Table() [3/6]

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
template<typename Iter >
robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::Table ( Iter  first,
Iter  last,
size_t   ROBIN_HOOD_UNUSEDbucket_count = 0,
const Hash &  h = Hash{},
const KeyEqual &  equal = KeyEqual{} 
)
inline

Definition at line 1517 of file robin_hood.h.

◆ Table() [4/6]

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::Table ( std::initializer_list< value_type initlist,
size_t   ROBIN_HOOD_UNUSEDbucket_count = 0,
const Hash &  h = Hash{},
const KeyEqual &  equal = KeyEqual{} 
)
inline

Definition at line 1525 of file robin_hood.h.

◆ Table() [5/6]

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::Table ( Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual > &&  o)
inlinenoexcept

Definition at line 1534 of file robin_hood.h.

◆ Table() [6/6]

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::Table ( const Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual > &  o)
inline

Definition at line 1581 of file robin_hood.h.

Here is the call graph for this function:

◆ ~Table()

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::~Table ( )
inline

Definition at line 1703 of file robin_hood.h.

Here is the call graph for this function:

Member Function Documentation

◆ at() [1/2]

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
template<typename Q = mapped_type>
std::enable_if<!std::is_void<Q>::value, Q&>::type robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::at ( key_type const &  key)
inline

Definition at line 1913 of file robin_hood.h.

Here is the call graph for this function:

◆ at() [2/2]

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
template<typename Q = mapped_type>
std::enable_if<!std::is_void<Q>::value, Q const&>::type robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::at ( key_type const &  key) const
inline

Definition at line 1926 of file robin_hood.h.

Here is the call graph for this function:

◆ begin() [1/2]

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
iterator robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::begin ( )
inline

Definition at line 1977 of file robin_hood.h.

Here is the call graph for this function:

◆ begin() [2/2]

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
const_iterator robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::begin ( ) const
inline

Definition at line 1984 of file robin_hood.h.

Here is the call graph for this function:

◆ calcNumElementsWithBuffer()

◆ cbegin()

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
const_iterator robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::cbegin ( ) const
inline

Definition at line 1988 of file robin_hood.h.

Referenced by robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::begin().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ cend()

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
const_iterator robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::cend ( ) const
inline

◆ clear()

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
void robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::clear ( )
inline

Definition at line 1682 of file robin_hood.h.

Referenced by robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::operator=().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ cloneData()

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
void robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::cloneData ( const Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual > &  o)
inlineprivate

◆ compact()

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
void robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::compact ( )
inline

Definition at line 2072 of file robin_hood.h.

Here is the call graph for this function:

◆ contains() [1/2]

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
bool robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::contains ( const key_type key) const
inline

Definition at line 1899 of file robin_hood.h.

Here is the call graph for this function:

◆ contains() [2/2]

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
template<typename OtherKey , typename Self_ = Self>
std::enable_if<Self_::is_transparent, bool>::type robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::contains ( const OtherKey &  key) const
inline

Definition at line 1905 of file robin_hood.h.

Here is the call graph for this function:

◆ count() [1/2]

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
size_t robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::count ( const key_type key) const
inline

Definition at line 1879 of file robin_hood.h.

Referenced by robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::contains().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ count() [2/2]

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
template<typename OtherKey , typename Self_ = Self>
std::enable_if<Self_::is_transparent, size_t>::type robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::count ( const OtherKey &  key) const
inline

Definition at line 1890 of file robin_hood.h.

Here is the call graph for this function:

◆ destroy()

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
void robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::destroy ( )
inlineprivate

◆ emplace()

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
template<typename... Args>
std::pair<iterator, bool> robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::emplace ( Args &&...  args)
inline

Definition at line 1796 of file robin_hood.h.

Referenced by robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::insert().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ end() [1/2]

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
iterator robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::end ( )
inline

◆ end() [2/2]

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
const_iterator robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::end ( ) const
inline

Definition at line 2002 of file robin_hood.h.

Here is the call graph for this function:

◆ erase() [1/3]

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
size_t robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::erase ( const key_type key)
inline

Definition at line 2036 of file robin_hood.h.

Here is the call graph for this function:

◆ erase() [2/3]

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
iterator robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::erase ( const_iterator  pos)
inline

Definition at line 2011 of file robin_hood.h.

◆ erase() [3/3]

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
iterator robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::erase ( iterator  pos)
inline

Definition at line 2019 of file robin_hood.h.

Here is the call graph for this function:

◆ find() [1/6]

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
iterator robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::find ( const key_type key)
inline

Definition at line 1957 of file robin_hood.h.

Here is the call graph for this function:

◆ find() [2/6]

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
const_iterator robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::find ( const key_type key) const
inline

Definition at line 1935 of file robin_hood.h.

Referenced by robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::has(), and SurfaceProjector::initialize().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ find() [3/6]

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
template<typename OtherKey , typename Self_ = Self>
std::enable_if<Self_::is_transparent, iterator>::type robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::find ( const OtherKey &  key)
inline

Definition at line 1971 of file robin_hood.h.

Here is the call graph for this function:

◆ find() [4/6]

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
template<typename OtherKey , typename Self_ = Self>
std::enable_if<Self_::is_transparent, const_iterator>::type robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::find ( const OtherKey &  key) const
inline

Definition at line 1951 of file robin_hood.h.

Here is the call graph for this function:

◆ find() [5/6]

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
template<typename OtherKey >
iterator robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::find ( const OtherKey &  key,
is_transparent_tag   
)
inline

Definition at line 1964 of file robin_hood.h.

Here is the call graph for this function:

◆ find() [6/6]

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
template<typename OtherKey >
const_iterator robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::find ( const OtherKey &  key,
is_transparent_tag   
) const
inline

Definition at line 1942 of file robin_hood.h.

Here is the call graph for this function:

◆ findIdx()

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
template<typename Other >
size_t robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::findIdx ( Other const &  key) const
inlineprivate

◆ getFirstConst()

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
template<typename Q = mapped_type>
std::enable_if<!std::is_void<Q>::value, key_type const&>::type robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::getFirstConst ( value_type const &  vt) const
inlineprivatenoexcept

Definition at line 1138 of file robin_hood.h.

Referenced by robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::emplace().

Here is the caller graph for this function:

◆ has() [1/2]

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
template<typename Q = mapped_type>
std::enable_if<!std::is_void<Q>::value, bool>::type robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::has ( const value_type e) const
inlineprivate

Definition at line 2166 of file robin_hood.h.

Referenced by robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::operator==().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ has() [2/2]

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
template<typename Q = mapped_type>
std::enable_if<std::is_void<Q>::value, bool>::type robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::has ( const value_type e) const
inlineprivate

Definition at line 2174 of file robin_hood.h.

Here is the call graph for this function:

◆ increase_size()

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
bool robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::increase_size ( )
inlineprivate

Definition at line 2413 of file robin_hood.h.

Referenced by robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::insertKeyPrepareEmptySpot().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ init()

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
void robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::init ( )
inlineprivatenoexcept

Definition at line 2469 of file robin_hood.h.

Referenced by robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::operator=().

Here is the caller graph for this function:

◆ initData()

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
void robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::initData ( size_t  max_elements)
inlineprivate

Definition at line 2304 of file robin_hood.h.

Referenced by robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::increase_size(), and robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::rehashPowerOfTwo().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ insert() [1/4]

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
std::pair<iterator, bool> robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::insert ( const value_type keyval)
inline

Definition at line 1869 of file robin_hood.h.

Here is the call graph for this function:

◆ insert() [2/4]

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
template<typename Iter >
void robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::insert ( Iter  first,
Iter  last 
)
inline

Definition at line 1782 of file robin_hood.h.

Referenced by robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::insert().

Here is the caller graph for this function:

◆ insert() [3/4]

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
void robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::insert ( std::initializer_list< value_type ilist)
inline

Definition at line 1789 of file robin_hood.h.

Here is the call graph for this function:

◆ insert() [4/4]

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
std::pair<iterator, bool> robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::insert ( value_type &&  keyval)
inline

Definition at line 1874 of file robin_hood.h.

Here is the call graph for this function:

◆ insert_move()

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
void robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::insert_move ( Node &&  keyval)
inlineprivate

Definition at line 1450 of file robin_hood.h.

Referenced by robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::rehashPowerOfTwo().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ insert_or_assign() [1/4]

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
template<typename Mapped >
std::pair<iterator, bool> robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::insert_or_assign ( const key_type key,
Mapped &&  obj 
)
inline

Definition at line 1847 of file robin_hood.h.

Here is the call graph for this function:

◆ insert_or_assign() [2/4]

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
template<typename Mapped >
std::pair<iterator, bool> robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::insert_or_assign ( const_iterator  hint,
const key_type key,
Mapped &&  obj 
)
inline

Definition at line 1857 of file robin_hood.h.

Here is the call graph for this function:

◆ insert_or_assign() [3/4]

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
template<typename Mapped >
std::pair<iterator, bool> robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::insert_or_assign ( const_iterator  hint,
key_type &&  key,
Mapped &&  obj 
)
inline

Definition at line 1864 of file robin_hood.h.

Here is the call graph for this function:

◆ insert_or_assign() [4/4]

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
template<typename Mapped >
std::pair<iterator, bool> robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::insert_or_assign ( key_type &&  key,
Mapped &&  obj 
)
inline

Definition at line 1852 of file robin_hood.h.

Here is the call graph for this function:

◆ insertKeyPrepareEmptySpot()

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
template<typename OtherKey >
std::pair<size_t, InsertionState> robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::insertKeyPrepareEmptySpot ( OtherKey &&  key)
inlineprivate

◆ insertOrAssignImpl()

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
template<typename OtherKey , typename Mapped >
std::pair<iterator, bool> robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::insertOrAssignImpl ( OtherKey &&  key,
Mapped &&  obj 
)
inlineprivate

Definition at line 2275 of file robin_hood.h.

Referenced by robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::insert_or_assign().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ keyToIdx()

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
template<typename HashKey >
void robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::keyToIdx ( HashKey &&  key,
size_t *  idx,
InfoType info 
) const
inlineprivate

◆ load_factor()

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
float robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::load_factor ( ) const
inlinenoexcept

Definition at line 2112 of file robin_hood.h.

Here is the call graph for this function:

◆ max_load_factor()

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
float robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::max_load_factor ( ) const
inlinenoexcept

Definition at line 2106 of file robin_hood.h.

◆ max_size()

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
size_type robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::max_size ( ) const
inlinenoexcept

Definition at line 2096 of file robin_hood.h.

◆ next()

◆ nextHashMultiplier()

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
void robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::nextHashMultiplier ( )
inlineprivate

Definition at line 2444 of file robin_hood.h.

Referenced by robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::increase_size().

Here is the caller graph for this function:

◆ nextWhileLess()

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
void robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::nextWhileLess ( InfoType info,
size_t *  idx 
) const
inlineprivatenoexcept

Definition at line 1368 of file robin_hood.h.

Referenced by robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::insertKeyPrepareEmptySpot().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator!=()

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
bool robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::operator!= ( const Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual > &  other) const
inline

Definition at line 1723 of file robin_hood.h.

Here is the call graph for this function:

◆ operator=() [1/2]

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
Table& robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::operator= ( Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual > &&  o)
inlinenoexcept

Definition at line 1553 of file robin_hood.h.

Here is the call graph for this function:

◆ operator=() [2/2]

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
Table& robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::operator= ( Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual > const &  o)
inline

Definition at line 1612 of file robin_hood.h.

Here is the call graph for this function:

◆ operator==()

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
bool robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::operator== ( const Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual > &  other) const
inline

Definition at line 1709 of file robin_hood.h.

Referenced by robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::operator!=().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator[]() [1/2]

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
template<typename Q = mapped_type>
std::enable_if<!std::is_void<Q>::value, Q&>::type robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::operator[] ( const key_type key)
inline

Definition at line 1729 of file robin_hood.h.

Here is the call graph for this function:

◆ operator[]() [2/2]

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
template<typename Q = mapped_type>
std::enable_if<!std::is_void<Q>::value, Q&>::type robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::operator[] ( key_type &&  key)
inline

Definition at line 1755 of file robin_hood.h.

Here is the call graph for this function:

◆ rehash()

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
void robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::rehash ( size_t  c)
inline

Definition at line 2058 of file robin_hood.h.

Here is the call graph for this function:

◆ rehashPowerOfTwo()

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
void robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::rehashPowerOfTwo ( size_t  numBuckets,
bool  forceFree 
)
inlineprivate

◆ reserve() [1/2]

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
void robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::reserve ( size_t  c)
inline

Definition at line 2065 of file robin_hood.h.

Referenced by robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::rehash().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ reserve() [2/2]

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
void robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::reserve ( size_t  c,
bool  forceRehash 
)
inlineprivate

Definition at line 2179 of file robin_hood.h.

Here is the call graph for this function:

◆ ROBIN_HOOD() [1/8]

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::ROBIN_HOOD ( NODISCARD  ) const
inlinenoexcept

Definition at line 2101 of file robin_hood.h.

◆ ROBIN_HOOD() [2/8]

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::ROBIN_HOOD ( NODISCARD  ) const &
inlineprivatenoexcept

Definition at line 1130 of file robin_hood.h.

◆ ROBIN_HOOD() [3/8]

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::ROBIN_HOOD ( NODISCARD  ) const &
inlineprivatenoexcept

Definition at line 1124 of file robin_hood.h.

◆ ROBIN_HOOD() [4/8]

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::ROBIN_HOOD ( NODISCARD  ) const
inlinenoexcept

Definition at line 2122 of file robin_hood.h.

◆ ROBIN_HOOD() [5/8]

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::ROBIN_HOOD ( NODISCARD  ) const
inlinenoexcept

Definition at line 2131 of file robin_hood.h.

◆ ROBIN_HOOD() [6/8]

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::ROBIN_HOOD ( NODISCARD  ) const
inline

Definition at line 2144 of file robin_hood.h.

◆ ROBIN_HOOD() [7/8]

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::ROBIN_HOOD ( NODISCARD  ) const
inlinenoexcept

Definition at line 2117 of file robin_hood.h.

◆ ROBIN_HOOD() [8/8]

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::ROBIN_HOOD ( NOINLINE  ) const
inlineprivate

Definition at line 2237 of file robin_hood.h.

◆ shiftDown()

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
void robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::shiftDown ( size_t  idx)
inlineprivatenoexcept

Definition at line 1396 of file robin_hood.h.

Referenced by robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::erase().

Here is the caller graph for this function:

◆ shiftUp()

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
void robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::shiftUp ( size_t  startIdx,
size_t const  insertion_idx 
)
inlineprivatenoexcept

◆ size()

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
size_type robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::size ( ) const
inlinenoexcept

◆ swap()

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
void robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::swap ( Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual > &  o)
inline

Definition at line 1675 of file robin_hood.h.

Referenced by robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::DataNode< M, false >::swap().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ try_emplace() [1/4]

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
template<typename... Args>
std::pair<iterator, bool> robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::try_emplace ( const key_type key,
Args &&...  args 
)
inline

Definition at line 1824 of file robin_hood.h.

Here is the call graph for this function:

◆ try_emplace() [2/4]

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
template<typename... Args>
std::pair<iterator, bool> robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::try_emplace ( const_iterator  hint,
const key_type key,
Args &&...  args 
)
inline

Definition at line 1834 of file robin_hood.h.

Here is the call graph for this function:

◆ try_emplace() [3/4]

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
template<typename... Args>
std::pair<iterator, bool> robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::try_emplace ( const_iterator  hint,
key_type &&  key,
Args &&...  args 
)
inline

Definition at line 1841 of file robin_hood.h.

Here is the call graph for this function:

◆ try_emplace() [4/4]

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
template<typename... Args>
std::pair<iterator, bool> robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::try_emplace ( key_type &&  key,
Args &&...  args 
)
inline

Definition at line 1829 of file robin_hood.h.

Here is the call graph for this function:

◆ try_emplace_impl()

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
template<typename OtherKey , typename... Args>
std::pair<iterator, bool> robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::try_emplace_impl ( OtherKey &&  key,
Args &&...  args 
)
inlineprivate

Definition at line 2246 of file robin_hood.h.

Referenced by robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::try_emplace().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ try_increase_info()

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
bool robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::try_increase_info ( )
inlineprivate

Definition at line 2384 of file robin_hood.h.

Referenced by robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::increase_size(), and robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::insert_move().

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ InfoMask

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
constexpr size_t robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::InfoMask = InitialInfoInc - 1U
staticconstexprprivate

◆ InitialInfoHashShift

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
constexpr uint8_t robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::InitialInfoHashShift = 0
staticconstexprprivate

◆ InitialInfoInc

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
constexpr uint8_t robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::InitialInfoInc = 1U << InitialInfoNumBits
staticconstexprprivate

◆ InitialInfoNumBits

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
constexpr uint32_t robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::InitialInfoNumBits = 5
staticconstexprprivate

◆ InitialNumElements

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
constexpr size_t robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::InitialNumElements = sizeof(uint64_t)
staticconstexprprivate

◆ is_flat

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
constexpr bool robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::is_flat = IsFlat
staticconstexpr

Definition at line 918 of file robin_hood.h.

◆ is_map

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
constexpr bool robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::is_map = !std::is_void<T>::value
staticconstexpr

Definition at line 919 of file robin_hood.h.

◆ is_set

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
constexpr bool robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::is_set = !is_map
staticconstexpr

Definition at line 920 of file robin_hood.h.

◆ is_transparent

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
constexpr bool robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::is_transparent
staticconstexpr
Initial value:
=
has_is_transparent<Hash>::value && has_is_transparent<KeyEqual>::value

Definition at line 921 of file robin_hood.h.

◆ mHashMultiplier

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
uint64_t robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::mHashMultiplier = UINT64_C(0xc4ceb9fe1a85ec53)
private

◆ mInfo

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
uint8_t* robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::mInfo = reinterpret_cast<uint8_t*>(&mMask)
private

Definition at line 2482 of file robin_hood.h.

Referenced by robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::at(), robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::begin(), robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::cbegin(), robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::cend(), robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::clear(), robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::count(), robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::emplace(), robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::end(), robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::erase(), robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::find(), robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::findIdx(), robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::init(), robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::initData(), robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::insert_move(), robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::insertKeyPrepareEmptySpot(), robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::insertOrAssignImpl(), robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::nextWhileLess(), robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::operator=(), robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::rehashPowerOfTwo(), robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::shiftDown(), robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::shiftUp(), robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::Table(), robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::try_emplace_impl(), and robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::try_increase_info().

◆ mInfoHashShift

◆ mInfoInc

◆ mKeyVals

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
Node* robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::mKeyVals = reinterpret_cast_no_cast_align_warning<Node*>(&mMask)
private

Definition at line 2481 of file robin_hood.h.

Referenced by robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::at(), robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::begin(), robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::cbegin(), robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::count(), robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::destroy(), robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::emplace(), robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::erase(), robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::find(), robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::findIdx(), robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::init(), robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::initData(), robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::insert_move(), robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::insertKeyPrepareEmptySpot(), robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::insertOrAssignImpl(), robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::operator=(), robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::operator[](), robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::rehashPowerOfTwo(), robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::shiftDown(), robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::shiftUp(), robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::Table(), and robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::try_emplace_impl().

◆ mMask

template<bool IsFlat, size_t MaxLoadFactor100, typename Key , typename T , typename Hash , typename KeyEqual >
size_t robin_hood::detail::Table< IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual >::mMask = 0
private

◆ mMaxNumElementsAllowed

◆ mNumElements


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