acme
Foundational cross-platform layer of the ca2 framework
Toggle main menu visibility
Loading...
Searching...
No Matches
set_element.h
1
#pragma once
2
3
4
template
<
typename
ELEMENT >
5
class
set_element_item
6
{
7
public
:
8
9
10
ELEMENT m_element;
11
set_element_item * m_pprev;
12
set_element_item * m_pnext;
13
set_element_item * m_pnextHash;
14
set_element_item ** m_ppprevHash;
15
16
17
set_element_item()
18
{
19
20
}
21
22
23
set_element_item(
const
ELEMENT & element) :
24
m_element(element)
25
{
26
27
}
28
29
30
ELEMENT & element() {
return
m_element; }
31
const
ELEMENT & element()
const
{
return
m_element; }
32
33
34
#ifdef CPP17
35
template
<std::
size_t
N>
36
auto
& get()
const
37
{
38
if
constexpr
(N == 0)
return
this->element1();
39
else
if
constexpr
(N == 1)
return
this->element2();
40
}
41
42
template
<std::
size_t
N>
43
auto
& get()
44
{
45
if
constexpr
(N == 0)
return
this->element1();
46
else
if
constexpr
(N == 1)
return
this->element2();
47
}
48
#endif
49
50
};
51
52
53
template
<
typename
ELEMENT >
54
inline
typename
ELEMENT::TYPE2& payload_of(
const
set_element_item<ELEMENT>
&
pair
)
55
{
56
57
return
(
typename
ELEMENT::TYPE2 &)
pair
.element2();
58
59
}
60
61
62
63
//template < typename TYPE >
64
//inline ::pointer<TYPE>& payload_of(const ::pointer<TYPE> p)
65
//{
66
//
67
// return (::pointer<TYPE>&) p;
68
//
69
//}
70
71
72
namespace
std
73
{
74
75
76
template
<
typename
ELEMENT >
77
ALIENATED_ANDROID_ANARCHY tuple_size< ::set_element_item < ELEMENT > > : integral_constant<size_t, 2> {};
78
79
template
<
typename
ELEMENT >
80
ALIENATED_ANDROID_ANARCHY tuple_element< 0, set_element_item < ELEMENT > >
81
{
82
using
type = typename ::set_element_item < ELEMENT >::TYPE1;
83
};
84
85
template
<
typename
ELEMENT >
86
ALIENATED_ANDROID_ANARCHY tuple_element< 1, set_element_item < ELEMENT > >
87
{
88
using
type = typename ::set_element_item < ELEMENT >::TYPE2;
89
};
90
91
92
}
// namespace std
pair
Definition
_template_forward_declaration.h:327
set_element_item
Definition
set_element.h:6
prototype
collection
set_element.h
Generated by
1.17.0