UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
NumericLimits.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreTypes.h"
6
7/* Numeric constants
8 *****************************************************************************/
9
10#define MIN_uint8 ((uint8) 0x00)
11#define MIN_uint16 ((uint16) 0x0000)
12#define MIN_uint32 ((uint32) 0x00000000)
13#define MIN_uint64 ((uint64) 0x0000000000000000)
14#define MIN_int8 ((int8) -128)
15#define MIN_int16 ((int16) -32768)
16#define MIN_int32 ((int32) 0x80000000)
17#define MIN_int64 ((int64) 0x8000000000000000)
18
19#define MAX_uint8 ((uint8) 0xff)
20#define MAX_uint16 ((uint16) 0xffff)
21#define MAX_uint32 ((uint32) 0xffffffff)
22#define MAX_uint64 ((uint64) 0xffffffffffffffff)
23#define MAX_int8 ((int8) 0x7f)
24#define MAX_int16 ((int16) 0x7fff)
25#define MAX_int32 ((int32) 0x7fffffff)
26#define MAX_int64 ((int64) 0x7fffffffffffffff)
27
28#define MIN_flt (1.175494351e-38F) /* min positive value */
29#define MAX_flt (3.402823466e+38F)
30#define MIN_dbl (2.2250738585072014e-308) /* min positive value */
31#define MAX_dbl (1.7976931348623158e+308)
32
33
34/* Numeric type traits
35 *****************************************************************************/
36
40template <typename NumericType>
42
43
47template <typename NumericType>
48struct TNumericLimits<const NumericType>
49 : public TNumericLimits<NumericType>
50{ };
51
52
56template <typename NumericType>
57struct TNumericLimits<volatile NumericType>
58 : public TNumericLimits<NumericType>
59{ };
60
61
65template <typename NumericType>
66struct TNumericLimits<const volatile NumericType>
67 : public TNumericLimits<NumericType>
68{ };
69
70
71template<>
73{
75
76 [[nodiscard]] static constexpr NumericType Min()
77 {
78 return MIN_uint8;
79 }
80
81 [[nodiscard]] static constexpr NumericType Max()
82 {
83 return MAX_uint8;
84 }
85
86 [[nodiscard]] static constexpr NumericType Lowest()
87 {
88 return Min();
89 }
90};
91
92
93template<>
95{
97
98 [[nodiscard]] static constexpr NumericType Min()
99 {
100 return MIN_uint16;
101 }
102
103 [[nodiscard]] static constexpr NumericType Max()
104 {
105 return MAX_uint16;
106 }
107
108 [[nodiscard]] static constexpr NumericType Lowest()
109 {
110 return Min();
111 }
112};
113
114
115template<>
117{
119
120 [[nodiscard]] static constexpr NumericType Min()
121 {
122 return MIN_uint32;
123 }
124
125 [[nodiscard]] static constexpr NumericType Max()
126 {
127 return MAX_uint32;
128 }
129
130 [[nodiscard]] static constexpr NumericType Lowest()
131 {
132 return Min();
133 }
134};
135
136
137template<>
139{
141
142 [[nodiscard]] static constexpr NumericType Min()
143 {
144 return MIN_uint64;
145 }
146
147 [[nodiscard]] static constexpr NumericType Max()
148 {
149 return MAX_uint64;
150 }
151
152 [[nodiscard]] static constexpr NumericType Lowest()
153 {
154 return Min();
155 }
156};
157
158
159template<>
161{
163
164 [[nodiscard]] static constexpr NumericType Min()
165 {
166 return MIN_int8;
167 }
168
169 [[nodiscard]] static constexpr NumericType Max()
170 {
171 return MAX_int8;
172 }
173
174 [[nodiscard]] static constexpr NumericType Lowest()
175 {
176 return Min();
177 }
178};
179
180
181template<>
183{
185
186 [[nodiscard]] static constexpr NumericType Min()
187 {
188 return MIN_int16;
189 }
190
191 [[nodiscard]] static constexpr NumericType Max()
192 {
193 return MAX_int16;
194 }
195
196 [[nodiscard]] static constexpr NumericType Lowest()
197 {
198 return Min();
199 }
200};
201
202
203template<>
205{
207
208 [[nodiscard]] static constexpr NumericType Min()
209 {
210 return MIN_int32;
211 }
212
213 [[nodiscard]] static constexpr NumericType Max()
214 {
215 return MAX_int32;
216 }
217
218 [[nodiscard]] static constexpr NumericType Lowest()
219 {
220 return Min();
221 }
222};
223
224
225template<>
227{
229
230 [[nodiscard]] static constexpr NumericType Min()
231 {
232 return MIN_int64;
233 }
234
235 [[nodiscard]] static constexpr NumericType Max()
236 {
237 return MAX_int64;
238 }
239
240 [[nodiscard]] static constexpr NumericType Lowest()
241 {
242 return Min();
243 }
244};
245
246
247template<>
249{
250 typedef float NumericType;
251
252 [[nodiscard]] static constexpr NumericType Min()
253 {
254 return MIN_flt;
255 }
256
257 [[nodiscard]] static constexpr NumericType Max()
258 {
259 return MAX_flt;
260 }
261
262 [[nodiscard]] static constexpr NumericType Lowest()
263 {
264 return -Max();
265 }
266};
267
268
269template<>
271{
272 typedef double NumericType;
273
274 [[nodiscard]] static constexpr NumericType Min()
275 {
276 return MIN_dbl;
277 }
278
279 [[nodiscard]] static constexpr NumericType Max()
280 {
281 return MAX_dbl;
282 }
283
284 [[nodiscard]] static constexpr NumericType Lowest()
285 {
286 return -Max();
287 }
288};
FPlatformTypes::int16 int16
A 16-bit signed integer.
Definition Platform.h:1123
FPlatformTypes::int8 int8
An 8-bit signed integer.
Definition Platform.h:1121
FPlatformTypes::int64 int64
A 64-bit signed integer.
Definition Platform.h:1127
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
FPlatformTypes::uint64 uint64
A 64-bit unsigned integer.
Definition Platform.h:1117
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define MAX_int32
Definition NumericLimits.h:25
#define MAX_dbl
Definition NumericLimits.h:31
#define MIN_int16
Definition NumericLimits.h:15
#define MIN_uint64
Definition NumericLimits.h:13
#define MIN_int8
Definition NumericLimits.h:14
#define MAX_flt
Definition NumericLimits.h:29
#define MIN_uint8
Definition NumericLimits.h:10
#define MAX_int16
Definition NumericLimits.h:24
#define MIN_int32
Definition NumericLimits.h:16
#define MIN_flt
Definition NumericLimits.h:28
#define MIN_dbl
Definition NumericLimits.h:30
#define MAX_uint16
Definition NumericLimits.h:20
#define MAX_int64
Definition NumericLimits.h:26
#define MAX_uint32
Definition NumericLimits.h:21
#define MAX_uint8
Definition NumericLimits.h:19
#define MIN_int64
Definition NumericLimits.h:17
#define MIN_uint16
Definition NumericLimits.h:11
#define MIN_uint32
Definition NumericLimits.h:12
#define MAX_int8
Definition NumericLimits.h:23
#define MAX_uint64
Definition NumericLimits.h:22
USkinnedMeshComponent float
Definition SkinnedMeshComponent.h:60
uint8_t uint8
Definition binka_ue_file_header.h:8
uint16_t uint16
Definition binka_ue_file_header.h:7
uint32_t uint32
Definition binka_ue_file_header.h:6
static constexpr NumericType Lowest()
Definition NumericLimits.h:284
double NumericType
Definition NumericLimits.h:272
static constexpr NumericType Min()
Definition NumericLimits.h:274
static constexpr NumericType Max()
Definition NumericLimits.h:279
static constexpr NumericType Min()
Definition NumericLimits.h:252
static constexpr NumericType Lowest()
Definition NumericLimits.h:262
static constexpr NumericType Max()
Definition NumericLimits.h:257
float NumericType
Definition NumericLimits.h:250
static constexpr NumericType Max()
Definition NumericLimits.h:191
static constexpr NumericType Lowest()
Definition NumericLimits.h:196
static constexpr NumericType Min()
Definition NumericLimits.h:186
int16 NumericType
Definition NumericLimits.h:184
static constexpr NumericType Min()
Definition NumericLimits.h:208
static constexpr NumericType Lowest()
Definition NumericLimits.h:218
static constexpr NumericType Max()
Definition NumericLimits.h:213
int32 NumericType
Definition NumericLimits.h:206
static constexpr NumericType Max()
Definition NumericLimits.h:235
int64 NumericType
Definition NumericLimits.h:228
static constexpr NumericType Lowest()
Definition NumericLimits.h:240
static constexpr NumericType Min()
Definition NumericLimits.h:230
static constexpr NumericType Lowest()
Definition NumericLimits.h:174
int8 NumericType
Definition NumericLimits.h:162
static constexpr NumericType Min()
Definition NumericLimits.h:164
static constexpr NumericType Max()
Definition NumericLimits.h:169
static constexpr NumericType Min()
Definition NumericLimits.h:98
static constexpr NumericType Max()
Definition NumericLimits.h:103
static constexpr NumericType Lowest()
Definition NumericLimits.h:108
uint16 NumericType
Definition NumericLimits.h:96
uint32 NumericType
Definition NumericLimits.h:118
static constexpr NumericType Min()
Definition NumericLimits.h:120
static constexpr NumericType Lowest()
Definition NumericLimits.h:130
static constexpr NumericType Max()
Definition NumericLimits.h:125
static constexpr NumericType Lowest()
Definition NumericLimits.h:152
static constexpr NumericType Max()
Definition NumericLimits.h:147
static constexpr NumericType Min()
Definition NumericLimits.h:142
uint64 NumericType
Definition NumericLimits.h:140
static constexpr NumericType Min()
Definition NumericLimits.h:76
static constexpr NumericType Lowest()
Definition NumericLimits.h:86
static constexpr NumericType Max()
Definition NumericLimits.h:81
uint8 NumericType
Definition NumericLimits.h:74
Definition NumericLimits.h:41