6#include "Misc/AssertionMacros.h"
7#include "Templates/TypeHash.h"
8#include "Containers/EnumAsByte.h"
9#include "Misc/FrameNumber.h"
10#include "Misc/DateTime.h"
15
16
32
33
34template<
typename ElementType>
43
44
45
46
53
54
55
56
57
66
67
68
69
70
77
78
79
80
81
90
91
92
93
94
95
96
106
107
108
109
110
111
112
121
122
123
124
131
132
133
134
141
142
143
144
151
152
153
154
163
164
165
166
167
168
175
176
177
178
179
188
189
190
191
192
204
205
206
207
208
220
221
222
223
236
237
238
239
240
241
258
259
260
261
262
263
276
277
278
279
280
281
294
295
296
297
298
299
312
313
314
315
316
317
340
342#define DEFINE_RANGEBOUND_WRAPPER_STRUCT(Name, ElementType)
343 struct Name : TRangeBound<ElementType>
346 typedef TRangeBound<ElementType> Super;
353 Name(const Super& Other)
357 Name(const ElementType InValue)
361 static FORCEINLINE Name Exclusive(ElementValueOrConstRef Value)
363 return static_cast<const Name&>(Super::Exclusive(Value));
366 static FORCEINLINE Name Inclusive(ElementValueOrConstRef Value)
368 return static_cast<const Name&>(Super::Inclusive(Value));
373 return static_cast<const Name&>(Super::Open());
376 static FORCEINLINE Name FlipInclusion(const Name& Bound)
378 return static_cast<const Name&>(Super::FlipInclusion(Bound));
381 static FORCEINLINE const Name& MaxLower(const Name& A, const Name& B)
383 return static_cast<const Name&>(Super::MaxLower(A, B));
386 static FORCEINLINE const Name& MaxUpper(const Name& A, const Name& B)
388 return static_cast<const Name&>(Super::MaxUpper(A, B));
391 static FORCEINLINE const Name& MinLower(const Name& A, const Name& B)
393 return static_cast<const Name&>(Super::MinLower(A, B));
396 static FORCEINLINE const Name& MinUpper(const Name& A, const Name& B)
398 return static_cast<const Name&>(Super::MinUpper(A, B));
403 struct TIsBitwiseConstructible<Name, TRangeBound<ElementType>>
405 enum { Value = true };
409 struct TIsBitwiseConstructible<TRangeBound<ElementType>, Name>
411 enum { Value = true };
#define FORCEINLINE_DEBUGGABLE
#define DEFINE_RANGEBOUND_WRAPPER_STRUCT(Name, ElementType)
static FORCEINLINE TRangeBound FlipInclusion(const TRangeBound &Bound)
static FORCEINLINE TRangeBound Open()
static FORCEINLINE const TRangeBound & MinLower(const TRangeBound &A, const TRangeBound &B)
friend uint32 GetTypeHash(const TRangeBound &Bound)
static FORCEINLINE const TRangeBound & MaxUpper(const TRangeBound &A, const TRangeBound &B)
static FORCEINLINE const TRangeBound & MaxLower(const TRangeBound &A, const TRangeBound &B)
FORCEINLINE_DEBUGGABLE bool IsExclusive() const
FORCEINLINE_DEBUGGABLE bool IsClosed() const
static FORCEINLINE const TRangeBound & MinUpper(const TRangeBound &A, const TRangeBound &B)
FORCEINLINE_DEBUGGABLE bool IsOpen() const
TRangeBound(ElementValueOrConstRef InValue)
static FORCEINLINE TRangeBound Inclusive(ElementValueOrConstRef Value)
FORCEINLINE_DEBUGGABLE bool IsInclusive() const
bool operator==(const TRangeBound &Other) const
TCallTraits< ElementType >::ParamType ElementValueOrConstRef
bool operator!=(const TRangeBound &Other) const
FORCEINLINE_DEBUGGABLE void SetValue(ElementValueOrConstRef NewValue)
static FORCEINLINE TRangeBound Exclusive(ElementValueOrConstRef Value)
FORCEINLINE_DEBUGGABLE ElementValueOrConstRef GetValue() const