di 0.1.0
Loading...
Searching...
No Matches
di::container::OwningNodeHashTable< Value, Eq, Hasher, Buckets, Tag, Alloc, Interface, is_multi, is_map > Class Template Reference

#include <di/container/hash/node/owning_node_hash_table.h>

Inheritance diagram for di::container::OwningNodeHashTable< Value, Eq, Hasher, Buckets, Tag, Alloc, Interface, is_multi, is_map >:
di::container::NodeHashTable< Value, Eq, Hasher, Buckets, Tag, Interface, is_multi, is_map, OwningNodeHashTable< Value, Eq, Hasher, Buckets, Tag, Alloc, Interface, is_multi, is_map > >

Public Member Functions

constexpr auto allocator () -> Alloc &
template<typename U, concepts::Invocable F>
constexpr auto insert_with_factory (U &&needle, F &&factory) -> InsertResult
template<typename U, concepts::Invocable F>
constexpr auto insert_with_factory (ConstIterator, U &&needle, F &&factory)
Public Member Functions inherited from di::container::NodeHashTable< Value, Eq, Hasher, Buckets, Tag, Interface, is_multi, is_map, OwningNodeHashTable< Value, Eq, Hasher, Buckets, Tag, Alloc, Interface, is_multi, is_map > >
 NodeHashTable ()=default
 NodeHashTable (NodeHashTable const &)=delete
auto operator= (NodeHashTable const &) -> NodeHashTable &=delete
constexpr NodeHashTable (Eq eq, Hasher hasher={})
constexpr NodeHashTable (NodeHashTable &&other)
constexpr auto operator= (NodeHashTable &&other) -> NodeHashTable &
constexpr ~NodeHashTable ()
constexpr auto size () const -> usize
constexpr auto empty () const -> bool
constexpr auto bucket_count () const -> usize
constexpr auto begin () -> Iterator
constexpr auto begin () const -> ConstIterator
constexpr auto end () -> Iterator
constexpr auto end () const -> ConstIterator
constexpr auto unconst_iterator (ConstIterator it) -> Iterator
constexpr auto insert_node (Node &node)
constexpr auto insert_node (ConstIterator, Node &node)
constexpr auto erase_impl (ConstIterator it) -> Iterator
constexpr auto equal_range_impl (U &&needle) const
constexpr auto find_impl (U &&needle) const -> ConstIterator
constexpr auto reserve (usize new_capacity) -> decltype(util::declval< Buckets & >().reserve_from_nothing(new_capacity))
constexpr void merge_impl (NodeHashTable &&other)

Additional Inherited Members

Protected Types inherited from di::container::NodeHashTable< Value, Eq, Hasher, Buckets, Tag, Interface, is_multi, is_map, OwningNodeHashTable< Value, Eq, Hasher, Buckets, Tag, Alloc, Interface, is_multi, is_map > >
using Node
using Iterator
using ConstIterator
using ConcreteNode
using Key
Protected Member Functions inherited from di::container::NodeHashTable< Value, Eq, Hasher, Buckets, Tag, Interface, is_multi, is_map, OwningNodeHashTable< Value, Eq, Hasher, Buckets, Tag, Alloc, Interface, is_multi, is_map > >
constexpr auto down_cast_self () -> decltype(auto)
constexpr auto node_value (Node &node) const -> Value &
constexpr auto node_value (Node const &node) const -> Value const &
constexpr void merge_impl_without_rehashing (NodeHashTable &&other)
constexpr auto insert_node_without_rehashing (Node &node, bool call_insertion_hook=true)
constexpr auto hash (U const &value) const -> u64
constexpr auto hash (Value const &value) const -> u64
constexpr auto equal (T const &a, U const &b) const -> bool
constexpr auto equal (T const &a, Value const &b) const -> bool
constexpr auto equal (Value const &a, T const &b) const -> bool
constexpr auto equal (Value const &a, Value const &b) const -> bool
Protected Attributes inherited from di::container::NodeHashTable< Value, Eq, Hasher, Buckets, Tag, Interface, is_multi, is_map, OwningNodeHashTable< Value, Eq, Hasher, Buckets, Tag, Alloc, Interface, is_multi, is_map > >
Buckets m_buckets
usize m_size
Eq m_eq
Hasher m_hasher
Static Protected Attributes inherited from di::container::NodeHashTable< Value, Eq, Hasher, Buckets, Tag, Interface, is_multi, is_map, OwningNodeHashTable< Value, Eq, Hasher, Buckets, Tag, Alloc, Interface, is_multi, is_map > >
static constexpr bool allow_rehashing_in_insert

Member Function Documentation

◆ allocator()

template<typename Value, typename Eq, concepts::Hasher Hasher, typename Buckets, typename Tag, concepts::Allocator Alloc, typename Interface, bool is_multi, bool is_map>
auto di::container::OwningNodeHashTable< Value, Eq, Hasher, Buckets, Tag, Alloc, Interface, is_multi, is_map >::allocator ( ) ->Alloc &
inlineconstexpr

◆ insert_with_factory() [1/2]

template<typename Value, typename Eq, concepts::Hasher Hasher, typename Buckets, typename Tag, concepts::Allocator Alloc, typename Interface, bool is_multi, bool is_map>
template<typename U, concepts::Invocable F>
auto di::container::OwningNodeHashTable< Value, Eq, Hasher, Buckets, Tag, Alloc, Interface, is_multi, is_map >::insert_with_factory ( ConstIterator ,
U && needle,
F && factory )
inlineconstexpr

◆ insert_with_factory() [2/2]

template<typename Value, typename Eq, concepts::Hasher Hasher, typename Buckets, typename Tag, concepts::Allocator Alloc, typename Interface, bool is_multi, bool is_map>
template<typename U, concepts::Invocable F>
auto di::container::OwningNodeHashTable< Value, Eq, Hasher, Buckets, Tag, Alloc, Interface, is_multi, is_map >::insert_with_factory ( U && needle,
F && factory )->InsertResult
inlineconstexpr

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