Stroika Library 3.0d16
 
Loading...
Searching...
No Matches
SortedAssociation_Factory.inl
1/*
2 * Copyright(c) Sophist Solutions, Inc. 1990-2025. All rights reserved
3 */
5
7 template <typename KEY_TYPE, typename MAPPED_VALUE_TYPE>
8 class SortedAssociation_stdmultimap;
9}
10namespace Stroika::Foundation::Containers::Factory {
11
12 /*
13 ********************************************************************************
14 ********* SortedAssociation_Factory<KEY_TYPE, VALUE_TYPE, TRAITS> **************
15 ********************************************************************************
16 */
17 template <typename KEY_TYPE, typename VALUE_TYPE, ITotallyOrderingComparer<KEY_TYPE> COMPARER>
19 : fFactory_{f}
20 {
21 }
22 template <typename KEY_TYPE, typename VALUE_TYPE, ITotallyOrderingComparer<KEY_TYPE> COMPARER>
27 template <typename KEY_TYPE, typename VALUE_TYPE, ITotallyOrderingComparer<KEY_TYPE> COMPARER>
29 : SortedAssociation_Factory{[] () -> FactoryFunctionType {
30 return [] (const COMPARER& keyComparer) {
33 }
34 else {
35 return Concrete::SortedAssociation_stdmultimap<KEY_TYPE, VALUE_TYPE>{Common::InOrderComparerAdapter<KEY_TYPE, COMPARER>{keyComparer}};
36 }
37 };
38 }()}
39 {
40 }
41 template <typename KEY_TYPE, typename VALUE_TYPE, ITotallyOrderingComparer<KEY_TYPE> COMPARER>
43 {
44 return AccessDefault_ ();
45 }
46 template <typename KEY_TYPE, typename VALUE_TYPE, ITotallyOrderingComparer<KEY_TYPE> COMPARER>
48 {
49 return this->fFactory_ (keyComparer);
50 }
51 template <typename KEY_TYPE, typename VALUE_TYPE, ITotallyOrderingComparer<KEY_TYPE> COMPARER>
52 void SortedAssociation_Factory<KEY_TYPE, VALUE_TYPE, COMPARER>::Register (const optional<SortedAssociation_Factory>& f)
53 {
54 AccessDefault_ () = f.has_value () ? *f : SortedAssociation_Factory{Hints{}};
55 }
56 template <typename KEY_TYPE, typename VALUE_TYPE, ITotallyOrderingComparer<KEY_TYPE> COMPARER>
58 {
59 static SortedAssociation_Factory sDefault_{Hints{}};
60 return sDefault_;
61 }
62
63}
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 SortedAssociation<>...
Use this to wrap any basic comparer, and produce a Less comparer.
Definition Compare.h:386