4#ifndef _Stroika_Foundation_Containers_Concrete_SparseDataHyperRectangle_Factory_h_
5#define _Stroika_Foundation_Containers_Concrete_SparseDataHyperRectangle_Factory_h_
7#include "Stroika/Foundation/StroikaPreComp.h"
14 template <
typename T,
typename... INDEXES>
15 class SparseDataHyperRectangle;
18namespace Stroika::Foundation::Containers::Factory {
27 template <
typename T,
typename... INDEXES>
92 static void Register (
const optional<SparseDataHyperRectangle_Factory>& f = nullopt);
109#include "SparseDataHyperRectangle_Factory.inl"
Singleton factory object - Used to create the default backend implementation of a SparseDataHyperRect...
SparseDataHyperRectangle< T, INDEXES... > ConstructedType
nonvirtual ConstructedType operator()(Common::ArgByValueType< T > defaultItem={}) const
static const SparseDataHyperRectangle_Factory & Default()
constexpr SparseDataHyperRectangle_Factory()
static void Register(const optional< SparseDataHyperRectangle_Factory > &f=nullopt)
function< ConstructedType(Common::ArgByValueType< T > defaultItem)> FactoryFunctionType
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.