7#include "Stroika/Foundation/Containers/Concrete/Mapping_HashTable.h"
13 template <
typename KEY_TYPE,
typename MAPPED_VALUE_TYPE>
15 template <
typename KEY_TYPE,
typename MAPPED_VALUE_TYPE>
16 class Mapping_HashTable;
17 template <
typename KEY_TYPE,
typename MAPPED_VALUE_TYPE>
18 class Mapping_LinkedList;
20namespace Stroika::Foundation::Containers::Factory {
27 template <
typename KEY_TYPE,
typename VALUE_TYPE, IEqualsComparer<KEY_TYPE> KEY_EQUALS_COMPARER>
32 template <
typename KEY_TYPE,
typename VALUE_TYPE, IEqualsComparer<KEY_TYPE> KEY_EQUALS_COMPARER>
37 template <
typename KEY_TYPE,
typename VALUE_TYPE, IEqualsComparer<KEY_TYPE> KEY_EQUALS_COMPARER>
40 , fHints_OptimizeForLookupSpeedOverUpdateSpeed{hints.fOptimizeForLookupSpeedOverUpdateSpeed.value_or (true)}
43 template <
typename KEY_TYPE,
typename VALUE_TYPE, IEqualsComparer<KEY_TYPE> KEY_EQUALS_COMPARER>
46 return AccessDefault_ ();
48 template <
typename KEY_TYPE,
typename VALUE_TYPE, IEqualsComparer<KEY_TYPE> KEY_EQUALS_COMPARER>
51 if (this->fFactory_ ==
nullptr) [[likely]] {
52 if constexpr (same_as<KEY_EQUALS_COMPARER, equal_to<KEY_TYPE>> and default_initializable<Concrete::Mapping_HashTable<KEY_TYPE, VALUE_TYPE>>) {
56 else if constexpr (same_as<KEY_EQUALS_COMPARER, equal_to<KEY_TYPE>> and
57 default_initializable<Concrete::SortedMapping_stdmap<KEY_TYPE, VALUE_TYPE>>) {
62 if (fHints_OptimizeForLookupSpeedOverUpdateSpeed) [[likely]] {
72 return this->fFactory_ (keyEqualsComparer);
75 template <
typename KEY_TYPE,
typename VALUE_TYPE, IEqualsComparer<KEY_TYPE> KEY_EQUALS_COMPARER>
80 template <
typename KEY_TYPE,
typename VALUE_TYPE, IEqualsComparer<KEY_TYPE> KEY_EQUALS_COMPARER>
Mapping_Array<KEY_TYPE, MAPPED_VALUE_TYPE, TRAITS> is an Array-based concrete implementation of the M...
Mapping_HashTable<KEY_TYPE, MAPPED_VALUE_TYPE, TRAITS> is a HashTable based concrete implementation o...
Mapping_LinkedList<KEY_TYPE, MAPPED_VALUE_TYPE, TRAITS> is an LinkedList-based concrete implementatio...
SortedMapping_stdmap<KEY_TYPE,MAPPED_VALUE_TYPE> is an std::map-based concrete implementation of the ...
Singleton factory object - Used to create the default backend implementation of a Mapping<> container...
constexpr Mapping_Factory()
static const Mapping_Factory & Default()
static void Register(const optional< Mapping_Factory > &f=nullopt)
nonvirtual ConstructedType operator()(const KEY_EQUALS_COMPARER &keyEqualsComparer) const