BALL
1.4.2
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
include
BALL
DATATYPE
quadruple.h
Go to the documentation of this file.
1
// -*- Mode: C++; tab-width: 2; -*-
2
// vi: set ts=2:
3
//
4
// $Id: quadruple.h,v 1.13 2003/08/26 08:04:11 oliver Exp $
5
//
6
7
#ifndef BALL_DATATYPE_QUADRUPLE_H
8
#define BALL_DATATYPE_QUADRUPLE_H
9
10
#ifndef BALL_COMMON_H
11
# include <
BALL/common.h
>
12
#endif
13
14
namespace
BALL
15
{
21
template
<
typename
T1,
typename
T2,
typename
T3,
typename
T4>
22
class
Quadruple
23
{
24
public
:
25
29
30
BALL_CREATE
(
Quadruple
)
31
32
35
Quadruple
();
36
42
Quadruple
(
const
Quadruple
& quadruple,
bool
deep =
true
);
43
52
Quadruple
(
const
T1& new_first,
const
T2& new_second,
53
const
T3& new_third,
const
T4& new_fourth);
54
58
virtual
~Quadruple
();
60
63
virtual
void
clear
();
64
68
73
const
Quadruple
&
operator =
(
const
Quadruple
& quadruple);
74
77
void
set
(
const
T1& t1,
const
T2& t2,
const
T3& t3,
const
T4& t4);
78
81
void
get
(T1&
first
, T2&
second
, T3&
third
, T4&
fourth
)
const
;
82
84
87
91
bool
operator ==
(
const
Quadruple
& quadruple)
const
;
92
95
bool
operator !=
(
const
Quadruple
& quadruple)
const
;
96
102
bool
operator <
(
const
Quadruple
& quadruple)
const
;
103
106
bool
operator <=
(
const
Quadruple
& quadruple)
const
;
107
110
bool
operator >=
(
const
Quadruple
& quadruple)
const
;
111
114
bool
operator >
(
const
Quadruple
& quadruple)
const
;
115
117
121
124
T1
first
;
125
128
T2
second
;
129
132
T3
third
;
133
136
T4
fourth
;
138
};
139
140
template
<
typename
T1,
typename
T2,
typename
T3,
typename
T4>
141
Quadruple<T1, T2, T3, T4>::Quadruple
()
142
{
143
}
144
145
template
<
typename
T1,
typename
T2,
typename
T3,
typename
T4>
146
Quadruple<T1, T2, T3, T4>::Quadruple
147
(
const
Quadruple<T1, T2, T3, T4>
& quadruple,
bool
/* deep */
)
148
: first(quadruple.
first
),
149
second(quadruple.
second
),
150
third(quadruple.
third
),
151
fourth(quadruple.
fourth
)
152
{
153
}
154
155
template
<
typename
T1,
typename
T2,
typename
T3,
typename
T4>
156
Quadruple<T1, T2, T3, T4>::Quadruple
157
(
const
T1& new_first,
const
T2& new_second,
const
T3& new_third,
const
T4& fourth)
158
: first(new_first),
159
second(new_second),
160
third(new_third),
161
fourth(fourth)
162
{
163
}
164
165
template
<
typename
T1,
typename
T2,
typename
T3,
typename
T4>
166
Quadruple<T1, T2, T3, T4>::~Quadruple
()
167
{
168
}
169
170
template
<
typename
T1,
typename
T2,
typename
T3,
typename
T4>
171
BALL_INLINE
172
void
Quadruple<T1, T2, T3, T4>::set
(
const
T1& new_first,
const
T2& new_second,
const
T3& new_third,
const
T4& new_fourth)
173
174
{
175
first = new_first;
176
second = new_second;
177
third = new_third;
178
fourth = new_fourth;
179
}
180
181
template
<
typename
T1,
typename
T2,
typename
T3,
typename
T4>
182
BALL_INLINE
183
const
Quadruple<T1, T2, T3, T4>
&
Quadruple<T1, T2, T3, T4>::operator
=
184
(
const
Quadruple<T1, T2, T3, T4>
& quadruple)
185
{
186
first = quadruple.
first
;
187
second = quadruple.
second
;
188
third = quadruple.
third
;
189
fourth = quadruple.
fourth
;
190
191
return
*
this
;
192
}
193
194
template
<
typename
T1,
typename
T2,
typename
T3,
typename
T4>
195
BALL_INLINE
196
void
Quadruple<T1, T2, T3, T4>::get
(T1& t1, T2& t2, T3& t3, T4& t4)
const
197
{
198
t1 = first;
199
t2 = second;
200
t3 = third;
201
t4 = fourth;
202
}
203
204
template
<
typename
T1,
typename
T2,
typename
T3,
typename
T4>
205
BALL_INLINE
206
bool
Quadruple<T1, T2, T3, T4>::operator ==
(
const
Quadruple
& quadruple)
const
207
{
208
return
(first == quadruple.
first
209
&& second == quadruple.
second
210
&& third == quadruple.
third
211
&& fourth == quadruple.
fourth
);
212
}
213
214
template
<
typename
T1,
typename
T2,
typename
T3,
typename
T4>
215
BALL_INLINE
216
bool
Quadruple<T1, T2, T3, T4>::operator !=
(
const
Quadruple
& quadruple)
const
217
{
218
return
(first != quadruple.
first
219
|| second != quadruple.
second
220
|| third != quadruple.
third
221
|| fourth != quadruple.
fourth
);
222
}
223
224
template
<
typename
T1,
typename
T2,
typename
T3,
typename
T4>
225
BALL_INLINE
226
void
Quadruple<T1, T2, T3, T4>::clear
()
227
{
228
first = T1();
229
second = T2();
230
third = T3();
231
fourth = T4();
232
}
233
234
template
<
typename
T1,
typename
T2,
typename
T3,
typename
T4>
235
BALL_INLINE
236
bool
Quadruple<T1, T2, T3, T4>::operator
<
237
(
const
Quadruple<T1, T2, T3, T4>
& quadruple)
const
238
{
239
return
(first < quadruple.
first
||
240
(first == quadruple.
first
&& second < quadruple.
second
) ||
241
(first == quadruple.
first
&& second == quadruple.
second
&& third < quadruple.
third
) ||
242
(first == quadruple.
first
&& second == quadruple.
second
&& third == quadruple.
third
243
&& fourth < quadruple.
fourth
));
244
}
245
246
template
<
typename
T1,
typename
T2,
typename
T3,
typename
T4>
247
BALL_INLINE
248
bool
Quadruple<T1, T2, T3, T4>::operator
<=
249
(
const
Quadruple<T1, T2, T3, T4>
& quadruple)
const
250
{
251
return
(first < quadruple.
first
||
252
(first == quadruple.
first
&& second < quadruple.
second
) ||
253
(first == quadruple.
first
&& second == quadruple.
second
&& third < quadruple.
third
) ||
254
(first == quadruple.
first
&& second == quadruple.
second
&& third == quadruple.
third
255
&& fourth <= quadruple.
fourth
));
256
}
257
258
template
<
typename
T1,
typename
T2,
typename
T3,
typename
T4>
259
BALL_INLINE
260
bool
Quadruple<T1, T2, T3, T4>::operator
>=
261
(
const
Quadruple<T1, T2, T3, T4>
& quadruple)
const
262
{
263
return
(first > quadruple.
first
||
264
(first == quadruple.
first
&& second > quadruple.
second
) ||
265
(first == quadruple.
first
&& second == quadruple.
second
&& third > quadruple.
third
) ||
266
(first == quadruple.
first
&& second == quadruple.
second
&& third == quadruple.
third
267
&& fourth >= quadruple.
fourth
));
268
}
269
270
template
<
typename
T1,
typename
T2,
typename
T3,
typename
T4>
271
BALL_INLINE
272
bool
Quadruple<T1, T2, T3, T4>::operator
>
273
(
const
Quadruple<T1, T2, T3, T4>
& quadruple)
const
274
{
275
return
(first > quadruple.
first
||
276
(first == quadruple.
first
&& second > quadruple.
second
) ||
277
(first == quadruple.
first
&& second == quadruple.
second
&& third > quadruple.
third
) ||
278
(first == quadruple.
first
&& second == quadruple.
second
&& third == quadruple.
third
279
&& fourth > quadruple.
fourth
));
280
}
281
}
// namespace BALL
282
283
#endif // BALL_DATATYPE_QUADRUPLE_H
Generated by
1.8.3.1