Stroika Library 3.0d16
 
Loading...
Searching...
No Matches
SparseDataHyperRectangle_stdmap.h
Go to the documentation of this file.
1/*
2 * Copyright(c) Sophist Solutions, Inc. 1990-2025. All rights reserved
3 */
4#ifndef _Stroika_Foundation_Containers_Concrete_SparseDataHyperRectangle_stdmap_h_
5#define _Stroika_Foundation_Containers_Concrete_SparseDataHyperRectangle_stdmap_h_
6
7#include "Stroika/Foundation/StroikaPreComp.h"
8
10
11/**
12 * \file
13 *
14 * \note Code-Status: <a href="Code-Status.md#Alpha">Alpha</a>
15 */
16
18
19 /**
20 * \brief SparseDataHyperRectangle_stdmap<T, INDEXES...> is an Dense Vector-based concrete implementation of the SparseDataHyperRectangle<T> container pattern.
21 *
22 * \note \em Thread-Safety <a href="Thread-Safety.md#C++-Standard-Thread-Safety">C++-Standard-Thread-Safety</a>
23 *
24 */
25 template <typename T, typename... INDEXES>
27 private:
28 using inherited = SparseDataHyperRectangle<T, INDEXES...>;
29
30 public:
31 using value_type = typename inherited::value_type;
32
33 public:
34 /**
35 * \brief STDMAP is std::map<> that can be used inside SparseDataHyperRectangle_stdmap
36 */
37#if 0
38 //NYI
39 template <typename KEY_INORDER_COMPARER = less<key_type>>
40 using STDMAP = map<KEY_TYPE, CounterType, KEY_INORDER_COMPARER, Memory::BlockAllocatorOrStdAllocatorAsAppropriate<pair<const key_type, CounterType>, sizeof (value_type) <= 1024>>;
41#endif
42
43 public:
44 /**
45 */
48
49 public:
50 nonvirtual SparseDataHyperRectangle_stdmap<T, INDEXES...>& operator= (const SparseDataHyperRectangle_stdmap<T, INDEXES...>& rhs);
51
52 private:
53 class Rep_;
54
55 private:
56 nonvirtual void AssertRepValidType_ () const;
57 };
58
59 /**
60 * using SparseDataHyperRectangle_stdmapN = SparseDataHyperRectangle_stdmap<T, size_t REPEATED N TIMES>
61 */
62 template <typename T, size_t N>
64 typename Private_DataHyperRectangle_::template NTemplate<T, SparseDataHyperRectangle_stdmap>::template Helper_<make_index_sequence<N>>::CombinedType;
65
66}
67
68/*
69 ********************************************************************************
70 ******************************* Implementation Details *************************
71 ********************************************************************************
72 */
73
74#include "SparseDataHyperRectangle_stdmap.inl"
75
76#endif /*_Stroika_Foundation_Containers_Concrete_SparseDataHyperRectangle_stdmap_h_ */
SparseDataHyperRectangle_stdmap<T, INDEXES...> is an Dense Vector-based concrete implementation of th...
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
typename Private_DataHyperRectangle_::template NTemplate< T, SparseDataHyperRectangle_stdmap >::template Helper_< make_index_sequence< N > >::CombinedType SparseDataHyperRectangle_stdmapN