kblib 0.2.3
General utilities library for modern C++
kblib::intrusive_hash_map< Value, KeyExtract, Hash, KeyEqual > Class Template Reference

#include <kblib/intrusive_containers.h>

Public Types

using value_type = Value
 
using key_type = remove_cvref_t< std::invoke_result_t< decltype(KeyExtract), Value & > >
 
using mapped_type = Value
 
using size_type = std::size_t
 
using difference_type = std::ptrdiff_t
 
using hasher = Hash
 
using key_equal = KeyEqual
 
using allocator_type = void
 
using reference = value_type &
 
using const_reference = const value_type &
 
using pointer = value_type *
 
using const_pointer = const value_type *
 
using iterator = void
 
using const_iterator = void
 
using local_iterator = void
 
using const_local_iterator = void
 

Public Member Functions

template<int >
auto get () -> auto
 

Detailed Description

template<typename Value, auto KeyExtract, typename Hash = kblib::FNV_hash<>, typename KeyEqual = std::equal_to<>>
class kblib::intrusive_hash_map< Value, KeyExtract, Hash, KeyEqual >

Definition at line 46 of file intrusive_containers.h.

Member Typedef Documentation

◆ allocator_type

template<typename Value , auto KeyExtract, typename Hash = kblib::FNV_hash<>, typename KeyEqual = std::equal_to<>>
using kblib::intrusive_hash_map< Value, KeyExtract, Hash, KeyEqual >::allocator_type = void

Definition at line 57 of file intrusive_containers.h.

◆ const_iterator

template<typename Value , auto KeyExtract, typename Hash = kblib::FNV_hash<>, typename KeyEqual = std::equal_to<>>
using kblib::intrusive_hash_map< Value, KeyExtract, Hash, KeyEqual >::const_iterator = void

Definition at line 66 of file intrusive_containers.h.

◆ const_local_iterator

template<typename Value , auto KeyExtract, typename Hash = kblib::FNV_hash<>, typename KeyEqual = std::equal_to<>>
using kblib::intrusive_hash_map< Value, KeyExtract, Hash, KeyEqual >::const_local_iterator = void

Definition at line 68 of file intrusive_containers.h.

◆ const_pointer

template<typename Value , auto KeyExtract, typename Hash = kblib::FNV_hash<>, typename KeyEqual = std::equal_to<>>
using kblib::intrusive_hash_map< Value, KeyExtract, Hash, KeyEqual >::const_pointer = const value_type*

Definition at line 63 of file intrusive_containers.h.

◆ const_reference

template<typename Value , auto KeyExtract, typename Hash = kblib::FNV_hash<>, typename KeyEqual = std::equal_to<>>
using kblib::intrusive_hash_map< Value, KeyExtract, Hash, KeyEqual >::const_reference = const value_type&

Definition at line 60 of file intrusive_containers.h.

◆ difference_type

template<typename Value , auto KeyExtract, typename Hash = kblib::FNV_hash<>, typename KeyEqual = std::equal_to<>>
using kblib::intrusive_hash_map< Value, KeyExtract, Hash, KeyEqual >::difference_type = std::ptrdiff_t

Definition at line 54 of file intrusive_containers.h.

◆ hasher

template<typename Value , auto KeyExtract, typename Hash = kblib::FNV_hash<>, typename KeyEqual = std::equal_to<>>
using kblib::intrusive_hash_map< Value, KeyExtract, Hash, KeyEqual >::hasher = Hash

Definition at line 55 of file intrusive_containers.h.

◆ iterator

template<typename Value , auto KeyExtract, typename Hash = kblib::FNV_hash<>, typename KeyEqual = std::equal_to<>>
using kblib::intrusive_hash_map< Value, KeyExtract, Hash, KeyEqual >::iterator = void

Definition at line 65 of file intrusive_containers.h.

◆ key_equal

template<typename Value , auto KeyExtract, typename Hash = kblib::FNV_hash<>, typename KeyEqual = std::equal_to<>>
using kblib::intrusive_hash_map< Value, KeyExtract, Hash, KeyEqual >::key_equal = KeyEqual

Definition at line 56 of file intrusive_containers.h.

◆ key_type

template<typename Value , auto KeyExtract, typename Hash = kblib::FNV_hash<>, typename KeyEqual = std::equal_to<>>
using kblib::intrusive_hash_map< Value, KeyExtract, Hash, KeyEqual >::key_type = remove_cvref_t<std::invoke_result_t<decltype(KeyExtract), Value&> >

Definition at line 49 of file intrusive_containers.h.

◆ local_iterator

template<typename Value , auto KeyExtract, typename Hash = kblib::FNV_hash<>, typename KeyEqual = std::equal_to<>>
using kblib::intrusive_hash_map< Value, KeyExtract, Hash, KeyEqual >::local_iterator = void

Definition at line 67 of file intrusive_containers.h.

◆ mapped_type

template<typename Value , auto KeyExtract, typename Hash = kblib::FNV_hash<>, typename KeyEqual = std::equal_to<>>
using kblib::intrusive_hash_map< Value, KeyExtract, Hash, KeyEqual >::mapped_type = Value

Definition at line 51 of file intrusive_containers.h.

◆ pointer

template<typename Value , auto KeyExtract, typename Hash = kblib::FNV_hash<>, typename KeyEqual = std::equal_to<>>
using kblib::intrusive_hash_map< Value, KeyExtract, Hash, KeyEqual >::pointer = value_type*

Definition at line 62 of file intrusive_containers.h.

◆ reference

template<typename Value , auto KeyExtract, typename Hash = kblib::FNV_hash<>, typename KeyEqual = std::equal_to<>>
using kblib::intrusive_hash_map< Value, KeyExtract, Hash, KeyEqual >::reference = value_type&

Definition at line 59 of file intrusive_containers.h.

◆ size_type

template<typename Value , auto KeyExtract, typename Hash = kblib::FNV_hash<>, typename KeyEqual = std::equal_to<>>
using kblib::intrusive_hash_map< Value, KeyExtract, Hash, KeyEqual >::size_type = std::size_t

Definition at line 53 of file intrusive_containers.h.

◆ value_type

template<typename Value , auto KeyExtract, typename Hash = kblib::FNV_hash<>, typename KeyEqual = std::equal_to<>>
using kblib::intrusive_hash_map< Value, KeyExtract, Hash, KeyEqual >::value_type = Value

Definition at line 48 of file intrusive_containers.h.

Member Function Documentation

◆ get()

template<typename Value , auto KeyExtract, typename Hash = kblib::FNV_hash<>, typename KeyEqual = std::equal_to<>>
template<int >
auto kblib::intrusive_hash_map< Value, KeyExtract, Hash, KeyEqual >::get ( ) -> auto

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