acme
Foundational cross-platform layer of the ca2 framework
Toggle main menu visibility
Loading...
Searching...
No Matches
make_particle.h
1
// Created by camilo on 2024-08-27 <3ThomasBorregaardSorensen!!
2
#pragma once
3
4
5
6
7
template
<
typename
TYPE >
8
class
make_particle1 :
9
virtual
public
::particle,
10
public
TYPE
11
{
12
public
:
13
14
15
using
TYPE::TYPE;
16
using
TYPE::operator = ;
17
18
19
make_particle1(
const
TYPE & t) :
20
TYPE(t)
21
{
22
23
24
}
25
26
};
27
28
29
30
31
template
<
typename
TYPE >
32
class
array_particle :
33
virtual
public
::particle,
34
public
TYPE
35
{
36
public
:
37
38
39
using
TYPE::TYPE;
40
using
TYPE::operator = ;
41
using
TYPE::operator += ;
42
using
BASE_ARRAY = TYPE;
43
using
RAW_BASE_ARRAY =
typename
BASE_ARRAY::RAW_BASE_ARRAY;
44
45
46
array_particle(
const
RAW_BASE_ARRAY& a) : BASE_ARRAY(a) {}
47
//array_particle(RAW_BASE_ARRAY&& a) : BASE_ARRAY(::transfer(a)) {}
48
49
50
void
destroy()
override
51
{
52
53
TYPE::destroy();
54
55
}
56
57
58
};
59
60
61
template
<
typename
TYPE >
62
class
comparable_eq_array_particle :
63
virtual
public
::particle,
64
public
TYPE
65
{
66
public
:
67
68
69
using
TYPE::TYPE;
70
using
TYPE::operator = ;
71
using
TYPE::operator += ;
72
using
TYPE::operator -= ;
73
using
BASE_ARRAY = TYPE;
74
using
RAW_BASE_ARRAY =
typename
BASE_ARRAY::RAW_BASE_ARRAY;
75
76
77
comparable_eq_array_particle(
const
RAW_BASE_ARRAY& a) : BASE_ARRAY(a) {}
78
79
80
void
destroy()
override
81
{
82
83
TYPE::destroy();
84
85
}
86
87
88
};
89
90
91
template
<
typename
TYPE >
92
class
comparable_array_particle :
93
virtual
public
::particle,
94
public
TYPE
95
{
96
public
:
97
98
99
using
TYPE::TYPE;
100
using
TYPE::operator = ;
101
using
TYPE::operator += ;
102
using
TYPE::operator -= ;
103
using
BASE_ARRAY = TYPE;
104
using
RAW_BASE_ARRAY =
typename
BASE_ARRAY::RAW_BASE_ARRAY;
105
106
107
comparable_array_particle(
const
RAW_BASE_ARRAY& a) : BASE_ARRAY(a) { }
108
109
110
void
destroy()
override
111
{
112
113
TYPE::destroy();
114
115
}
116
117
118
};
119
120
121
122
template
<
typename
T>
123
auto
create_particle_from(
const
T & t)
124
{
125
126
auto
p = allocateø
make_particle1< T >
(t);
127
128
return
p;
129
130
}
131
make_particle1
Definition
make_particle.h:11
prototype
prototype
make_particle.h
Generated by
1.17.0