8namespace Stroika::Foundation::Containers::Factory {
15 template <
typename KEY_TYPE,
typename VALUE_TYPE, IEqualsComparer<KEY_TYPE> KEY_EQUALS_COMPARER>
20 template <
typename KEY_TYPE,
typename VALUE_TYPE, IEqualsComparer<KEY_TYPE> KEY_EQUALS_COMPARER>
25 DISABLE_COMPILER_CLANG_WARNING_START (
"clang diagnostic ignored \"-Wunused-lambda-capture\"");
26 template <
typename KEY_TYPE,
typename VALUE_TYPE, IEqualsComparer<KEY_TYPE> KEY_EQUALS_COMPARER>
29 if constexpr (same_as<KEY_EQUALS_COMPARER, equal_to<KEY_TYPE>> and totally_ordered<KEY_TYPE>) {
31 return [] (
const KEY_EQUALS_COMPARER&) {
36 if (hints.fOptimizeForLookupSpeedOverUpdateSpeed.value_or (
true)) {
38 return [] (
const KEY_EQUALS_COMPARER& keyEqualsComparer) {
39 return Concrete::Association_Array<KEY_TYPE, VALUE_TYPE>{keyEqualsComparer};
43 return [] (
const KEY_EQUALS_COMPARER& keyEqualsComparer) {
44 return Concrete::Association_LinkedList<KEY_TYPE, VALUE_TYPE>{keyEqualsComparer};
51 DISABLE_COMPILER_CLANG_WARNING_END (
"clang diagnostic ignored \"-Wunused-lambda-capture\"");
52 template <
typename KEY_TYPE,
typename VALUE_TYPE, IEqualsComparer<KEY_TYPE> KEY_EQUALS_COMPARER>
55 return AccessDefault_ ();
57 template <
typename KEY_TYPE,
typename VALUE_TYPE, IEqualsComparer<KEY_TYPE> KEY_EQUALS_COMPARER>
61 return this->fFactory_ (keyEqualsComparer);
63 template <
typename KEY_TYPE,
typename VALUE_TYPE, IEqualsComparer<KEY_TYPE> KEY_EQUALS_COMPARER>
68 template <
typename KEY_TYPE,
typename VALUE_TYPE, IEqualsComparer<KEY_TYPE> KEY_EQUALS_COMPARER>
An Association pairs key values with (possibly multiple or none) mapped_type values....
SortedAssociation_stdmultimap<KEY_TYPE,MAPPED_VALUE_TYPE> is an std::map-based concrete implementatio...
Singleton factory object - Used to create the default backend implementation of a Association<> conta...
constexpr Association_Factory()