8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46#define ENUM_RANGE_BY_FIRST_AND_LAST(EnumType, First, Last)
48 struct NEnumRangePrivate::TEnumRangeTraits<EnumType>
50 enum { RangeType = 0
};
51 static constexpr __underlying_type(EnumType) Begin = (__underlying_type(EnumType))(First);
52 static constexpr __underlying_type(EnumType) End = (__underlying_type(EnumType))(Last) + 1
;
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73#define ENUM_RANGE_BY_VALUES(EnumType, ...)
75 struct NEnumRangePrivate::TEnumRangeTraits<EnumType>
77 enum { RangeType = 1
};
78 template <typename Dummy>
79 static const EnumType* GetPointer(bool bLast)
81 static constexpr EnumType Values[] = { __VA_ARGS__ };
82 return bLast ? Values + sizeof(Values) / sizeof(EnumType) : Values;
89 template <
typename EnumType>
95 template <
typename EnumType, int32 RangeType>
98 static_assert(
sizeof(EnumType) == 0,
"Unknown enum type - use one of the ENUM_RANGE macros to define iteration semantics for your enum type.");
101 template <
typename EnumType>
131 template <
typename EnumType>
159 template <
typename EnumType>
166 template <
typename EnumType>
176 template <
typename EnumType>
208 template <
typename EnumType>
222
223
224
225
226
227
228
229
230
231
232template <
typename EnumType>
238
239
240
241
242
243
244
245
246
247
248
249template <
typename EnumType>
252 return UE::EnumFlags::Private::TRange<EnumType>(Flags);
#define ENUM_RANGE_BY_FIRST_AND_LAST(EnumType, First, Last)
UE::EnumFlags::Private::TRange< EnumType > MakeFlagsRange(EnumType Flags)
FORCEINLINE friend bool operator!=(const TEnumContiguousIterator &Lhs, const TEnumContiguousIterator &Rhs)
FORCEINLINE EnumType operator*() const
typedef __underlying_type(EnumType) IntType
FORCEINLINE TEnumContiguousIterator & operator++()
FORCEINLINE TEnumContiguousIterator(IntType InValue)
TEnumContiguousIterator< EnumType > begin() const
TEnumContiguousIterator< EnumType > end() const
TEnumValueArrayIterator< EnumType > begin() const
TEnumValueArrayIterator< EnumType > end() const
FORCEINLINE friend bool operator!=(const TEnumValueArrayIterator &Lhs, const TEnumValueArrayIterator &Rhs)
FORCEINLINE TEnumValueArrayIterator(const EnumType *InPtr)
FORCEINLINE TEnumValueArrayIterator & operator++()
FORCEINLINE EnumType operator*() const
FORCEINLINE TIterator(EnumType InFlags)
FORCEINLINE TIterator & operator++()
typedef __underlying_type(EnumType) IntType
FORCEINLINE friend bool operator!=(const TIterator &Lhs, const TIterator &Rhs)
FORCEINLINE EnumType operator*() const
Private::TIterator< EnumType > begin() const
Private::TIterator< EnumType > end() const