Stroika Library 3.0d16
 
Loading...
Searching...
No Matches
SparseDataHyperRectangle_Factory.inl
1/*
2 * Copyright(c) Sophist Solutions, Inc. 1990-2025. All rights reserved
3 */
5
7
8 template <typename T, typename... INDEXES>
9 class SparseDataHyperRectangle_stdmap;
10}
11
12namespace Stroika::Foundation::Containers::Factory {
13
14 /*
15 ********************************************************************************
16 ************************ SparseDataHyperRectangle_Factory<T> *******************
17 ********************************************************************************
18 */
19 template <typename T, typename... INDEXES>
21 : fFactory_{f}
22 {
23 }
24 template <typename T, typename... INDEXES>
29 template <typename T, typename... INDEXES>
31 : SparseDataHyperRectangle_Factory{[] () -> FactoryFunctionType {
32 return
33 [] (Common::ArgByValueType<T> defaultItem) { return Concrete::SparseDataHyperRectangle_stdmap<T, INDEXES...>{defaultItem}; };
34 }()}
35 {
36 }
37 template <typename T, typename... INDEXES>
39 {
40 return AccessDefault_ ();
41 }
42 template <typename T, typename... INDEXES>
44 {
45 return this->fFactory_ (defaultItem);
46 }
47 template <typename T, typename... INDEXES>
48 void SparseDataHyperRectangle_Factory<T, INDEXES...>::Register (const optional<SparseDataHyperRectangle_Factory>& f)
49 {
50 AccessDefault_ () = f.has_value () ? *f : SparseDataHyperRectangle_Factory{Hints{}};
51 }
52 template <typename T, typename... INDEXES>
54 {
55 static SparseDataHyperRectangle_Factory sDefault_{Hints{}};
56 return sDefault_;
57 }
58
59}
SparseDataHyperRectangle_stdmap<T, INDEXES...> is an Dense Vector-based concrete implementation of th...
Singleton factory object - Used to create the default backend implementation of a SparseDataHyperRect...
conditional_t<(sizeof(CHECK_T)<=2 *sizeof(void *)) and is_trivially_copyable_v< CHECK_T >, CHECK_T, const CHECK_T & > ArgByValueType
This is an alias for 'T' - but how we want to pass it on stack as formal parameter.
Definition TypeHints.h:32