kblib 0.2.3
General utilities library for modern C++
kblib::intrusive_dual_map< Value, KeyExtract1, KeyExtract2, Hash1, Hash2, KeyEqual1, KeyEqual2 > Class Template Reference

#include <kblib/intrusive_containers.h>

Public Types

using value_type = Value
 
using key_type_a = remove_cvref_t< std::invoke_result_t< decltype(KeyExtract1), Value & > >
 
using key_type_b = remove_cvref_t< std::invoke_result_t< decltype(KeyExtract2), Value & > >
 
using mapped_type = Value
 

Public Member Functions

template<int >
auto get () -> auto
 

Detailed Description

template<typename Value, auto KeyExtract1, auto KeyExtract2, typename Hash1 = kblib::FNV_hash<>, typename Hash2 = kblib::FNV_hash<>, typename KeyEqual1 = std::equal_to<>, typename KeyEqual2 = std::equal_to<>>
class kblib::intrusive_dual_map< Value, KeyExtract1, KeyExtract2, Hash1, Hash2, KeyEqual1, KeyEqual2 >

Definition at line 84 of file intrusive_containers.h.

Member Typedef Documentation

◆ key_type_a

template<typename Value , auto KeyExtract1, auto KeyExtract2, typename Hash1 = kblib::FNV_hash<>, typename Hash2 = kblib::FNV_hash<>, typename KeyEqual1 = std::equal_to<>, typename KeyEqual2 = std::equal_to<>>
using kblib::intrusive_dual_map< Value, KeyExtract1, KeyExtract2, Hash1, Hash2, KeyEqual1, KeyEqual2 >::key_type_a = remove_cvref_t<std::invoke_result_t<decltype(KeyExtract1), Value&> >

Definition at line 87 of file intrusive_containers.h.

◆ key_type_b

template<typename Value , auto KeyExtract1, auto KeyExtract2, typename Hash1 = kblib::FNV_hash<>, typename Hash2 = kblib::FNV_hash<>, typename KeyEqual1 = std::equal_to<>, typename KeyEqual2 = std::equal_to<>>
using kblib::intrusive_dual_map< Value, KeyExtract1, KeyExtract2, Hash1, Hash2, KeyEqual1, KeyEqual2 >::key_type_b = remove_cvref_t<std::invoke_result_t<decltype(KeyExtract2), Value&> >

Definition at line 89 of file intrusive_containers.h.

◆ mapped_type

template<typename Value , auto KeyExtract1, auto KeyExtract2, typename Hash1 = kblib::FNV_hash<>, typename Hash2 = kblib::FNV_hash<>, typename KeyEqual1 = std::equal_to<>, typename KeyEqual2 = std::equal_to<>>
using kblib::intrusive_dual_map< Value, KeyExtract1, KeyExtract2, Hash1, Hash2, KeyEqual1, KeyEqual2 >::mapped_type = Value

Definition at line 91 of file intrusive_containers.h.

◆ value_type

template<typename Value , auto KeyExtract1, auto KeyExtract2, typename Hash1 = kblib::FNV_hash<>, typename Hash2 = kblib::FNV_hash<>, typename KeyEqual1 = std::equal_to<>, typename KeyEqual2 = std::equal_to<>>
using kblib::intrusive_dual_map< Value, KeyExtract1, KeyExtract2, Hash1, Hash2, KeyEqual1, KeyEqual2 >::value_type = Value

Definition at line 86 of file intrusive_containers.h.

Member Function Documentation

◆ get()

template<typename Value , auto KeyExtract1, auto KeyExtract2, typename Hash1 = kblib::FNV_hash<>, typename Hash2 = kblib::FNV_hash<>, typename KeyEqual1 = std::equal_to<>, typename KeyEqual2 = std::equal_to<>>
template<int >
auto kblib::intrusive_dual_map< Value, KeyExtract1, KeyExtract2, Hash1, Hash2, KeyEqual1, KeyEqual2 >::get ( ) -> auto

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