Stroika Library
3.0d16
Help-Home
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
9
#include "
Stroika/Foundation/Containers/SparseDataHyperRectangle.h
"
10
11
/**
12
* \file
13
*
14
* \note Code-Status: <a href="Code-Status.md#Alpha">Alpha</a>
15
*/
16
17
namespace
Stroika::Foundation::Containers::Concrete
{
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>
26
class
SparseDataHyperRectangle_stdmap
:
public
SparseDataHyperRectangle
<T, 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
*/
46
SparseDataHyperRectangle_stdmap
(
Common::ArgByValueType<T>
defaultItem = {});
47
SparseDataHyperRectangle_stdmap
(
const
SparseDataHyperRectangle_stdmap<T, INDEXES...>
& src);
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>
63
using
SparseDataHyperRectangle_stdmapN
=
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.h
Stroika::Foundation::Containers::Concrete::SparseDataHyperRectangle_stdmap
SparseDataHyperRectangle_stdmap<T, INDEXES...> is an Dense Vector-based concrete implementation of th...
Definition
SparseDataHyperRectangle_stdmap.h:26
Stroika::Foundation::Containers::SparseDataHyperRectangle
Definition
SparseDataHyperRectangle.h:36
Stroika::Foundation::Common::ArgByValueType
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
Stroika::Foundation::Containers::Concrete
Definition
Association_Array.h:19
Stroika::Foundation::Containers::Concrete::SparseDataHyperRectangle_stdmapN
typename Private_DataHyperRectangle_::template NTemplate< T, SparseDataHyperRectangle_stdmap >::template Helper_< make_index_sequence< N > >::CombinedType SparseDataHyperRectangle_stdmapN
Definition
SparseDataHyperRectangle_stdmap.h:64
Library
Sources
Stroika
Foundation
Containers
Concrete
SparseDataHyperRectangle_stdmap.h
Generated by
1.9.8