Iros
 
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 >:
[legend]

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
 
constexpr NodeHashTable (Eq eq, Hasher hasher={})
 
constexpr NodeHashTable (NodeHashTable &&other)
 
auto operator= (NodeHashTable const &) -> NodeHashTable &=delete
 
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: