Stroika Library 3.0d16
 
Loading...
Searching...
No Matches
SortedKeyedCollection_Factory.inl
1/*
2 * Copyright(c) Sophist Solutions, Inc. 1990-2025. All rights reserved
3 */
5
6namespace Stroika::Foundation::Containers::Factory {
7
8 /*
9 ********************************************************************************
10 ********** SortedKeyedCollection_Factory<KEY_TYPE, VALUE_TYPE, TRAITS> *********
11 ********************************************************************************
12 */
13 template <typename T, typename KEY_TYPE, typename TRAITS, ITotallyOrderingComparer<KEY_TYPE> KEY_COMPARER>
15 : fFactory_{f}
16 {
17 }
18 template <typename T, typename KEY_TYPE, typename TRAITS, ITotallyOrderingComparer<KEY_TYPE> KEY_COMPARER>
23 template <typename T, typename KEY_TYPE, typename TRAITS, ITotallyOrderingComparer<KEY_TYPE> KEY_COMPARER>
25 : SortedKeyedCollection_Factory{[] () -> FactoryFunctionType {
26 return [] (const KeyExtractorType& keyExtractor, const KEY_COMPARER& keyComparer) {
29 }
30 else {
31 return Concrete::SortedKeyedCollection_stdset<T, KEY_TYPE, TRAITS>{
33 }
34 };
35 }()}
36 {
37 }
38 template <typename T, typename KEY_TYPE, typename TRAITS, ITotallyOrderingComparer<KEY_TYPE> KEY_COMPARER>
43 template <typename T, typename KEY_TYPE, typename TRAITS, ITotallyOrderingComparer<KEY_TYPE> KEY_COMPARER>
45 const KEY_COMPARER& keyComparer) const -> ConstructedType
46 {
47 return this->fFactory_ (keyExtractor, keyComparer);
48 }
49 template <typename T, typename KEY_TYPE, typename TRAITS, ITotallyOrderingComparer<KEY_TYPE> KEY_COMPARER>
50 void SortedKeyedCollection_Factory<T, KEY_TYPE, TRAITS, KEY_COMPARER>::Register (const optional<SortedKeyedCollection_Factory>& f)
51 {
52 AccessDefault_ () = f.has_value () ? *f : SortedKeyedCollection_Factory{Hints{}};
53 }
54 template <typename T, typename KEY_TYPE, typename TRAITS, ITotallyOrderingComparer<KEY_TYPE> KEY_COMPARER>
56 {
57 static SortedKeyedCollection_Factory sDefault_{Hints{}};
58 return sDefault_;
59 }
60
61}
SortedKeyedCollection_stdset<KEY_TYPE,MAPPED_VALUE_TYPE> is an std::map-based concrete implementation...
Singleton factory object - Used to create the default backend implementation of a Collection<> contai...
A SortedKeyedCollection is a KeyedCollection<T> which remains sorted (iteration produces items sorted...
Use this to wrap any basic comparer, and produce a Less comparer.
Definition Compare.h:386