Stroika Library 3.0d16
 
Loading...
Searching...
No Matches
DenseDataHyperRectangle_Factory.inl
1/*
2 * Copyright(c) Sophist Solutions, Inc. 1990-2025. All rights reserved
3 */
5
7 template <typename T, typename... INDEXES>
8 class DenseDataHyperRectangle_Vector;
9}
10
11namespace Stroika::Foundation::Containers::Factory {
12
13 /*
14 ********************************************************************************
15 ******************** DenseDataHyperRectangle_Factory<T> ************************
16 ********************************************************************************
17 */
18 template <typename T, typename... INDEXES>
20 : fFactory_{f}
21 {
22 }
23 template <typename T, typename... INDEXES>
28 template <typename T, typename... INDEXES>
30 : DenseDataHyperRectangle_Factory{[] () -> FactoryFunctionType {
31 return [] (INDEXES... dimensions) {
32 return Concrete::DenseDataHyperRectangle_Vector<T, INDEXES...>{forward<INDEXES> (dimensions)...};
33 };
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_ (forward<INDEXES> (dimensions)...);
46 }
47 template <typename T, typename... INDEXES>
48 void DenseDataHyperRectangle_Factory<T, INDEXES...>::Register (const optional<DenseDataHyperRectangle_Factory>& f)
49 {
50 AccessDefault_ () = f.has_value () ? *f : DenseDataHyperRectangle_Factory{Hints{}};
51 }
52 template <typename T, typename... INDEXES>
54 {
55 static DenseDataHyperRectangle_Factory sDefault_{Hints{}};
56 return sDefault_;
57 }
58
59}
DenseDataHyperRectangle_Vector<T, INDEXES...> is an Dense Vector-based concrete implementation of the...
Singleton factory object - Used to create the default backend implementation of a DenseDataHyperRecta...