...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
These tables were generated using the following program and options:
Program: numeric_limits_qbk.cpp Mon Nov 4 18:09:06 2013 BuildInfo: Platform Win32 Compiler Microsoft Visual C++ version 10.0 MSVC version 160040219. STL Dinkumware standard library version 520 Boost version 1.55.0
Table 1.4. Integer types constants (std::numeric_limits<T>::is_integer
== true
&& is_exact == true)
type |
signed |
bound |
modulo |
round |
radix |
digits |
digits10 |
---|---|---|---|---|---|---|---|
bool |
unsigned |
bound |
no |
to zero |
2 |
1 |
0 |
char |
signed |
bound |
modulo |
to zero |
2 |
7 |
2 |
unsigned char |
unsigned |
bound |
modulo |
to zero |
2 |
8 |
2 |
char16_t |
unsigned |
bound |
modulo |
to zero |
2 |
16 |
4 |
char32_t |
unsigned |
bound |
modulo |
to zero |
2 |
32 |
9 |
short |
signed |
bound |
modulo |
to zero |
2 |
15 |
4 |
unsigned short |
unsigned |
bound |
modulo |
to zero |
2 |
16 |
4 |
int |
signed |
bound |
modulo |
to zero |
2 |
31 |
9 |
unsigned |
unsigned |
bound |
modulo |
to zero |
2 |
32 |
9 |
long |
signed |
bound |
modulo |
to zero |
2 |
31 |
9 |
unsigned long |
unsigned |
bound |
modulo |
to zero |
2 |
32 |
9 |
long long |
signed |
bound |
modulo |
to zero |
2 |
63 |
18 |
unsigned long long |
unsigned |
bound |
modulo |
to zero |
2 |
64 |
19 |
int32_t |
signed |
bound |
modulo |
to zero |
2 |
31 |
9 |
uint32_t |
unsigned |
bound |
modulo |
to zero |
2 |
32 |
9 |
int64_t |
signed |
bound |
modulo |
to zero |
2 |
63 |
18 |
uint64_t |
unsigned |
bound |
modulo |
to zero |
2 |
64 |
19 |
int128_t |
signed |
bound |
modulo |
to zero |
2 |
128 |
38 |
uint128_t |
unsigned |
bound |
modulo |
to zero |
2 |
128 |
38 |
int256_t |
signed |
bound |
modulo |
to zero |
2 |
256 |
77 |
uint256_t |
unsigned |
bound |
modulo |
to zero |
2 |
256 |
77 |
cpp_int |
signed |
unbounded |
no |
to zero |
2 |
2147483647 |
646392383 |
Table 1.5. Integer types functions (std::numeric_limits<T>::is_integer
== true
&& std::numeric_limits<T>::min() == std::numeric_limits<T>::lowest()
)
function |
max |
min |
---|---|---|
bool |
1 |
0 |
char |
127 |
-128 |
unsigned char |
255 |
0 |
char16_t |
65535 |
0 |
char32_t |
4294967295 |
0 |
short |
32767 |
-32768 |
unsigned short |
65535 |
0 |
int |
2147483647 |
-2147483648 |
unsigned int |
4294967295 |
0 |
long |
2147483647 |
-2147483648 |
unsigned long |
4294967295 |
0 |
long long |
9223372036854775807 |
-9223372036854775808 |
unsigned long long |
18446744073709551615 |
0 |
int32_t |
2147483647 |
-2147483648 |
int64_t |
9223372036854775807 |
-9223372036854775808 |
int128_t |
340282366920938463463374607431768211455 |
-340282366920938463463374607431768211455 |
Table 1.6. Floating-point types constants (std::numeric_limits<T>::is_integer==false && is_signed==true && is_modulo==false && is_exact==false && is_bound==true
)
type |
round |
radix |
digits |
digits10 |
max_digits10 |
min_exp |
min_exp10 |
max_exp |
max_exp10 |
tiny |
trap |
---|---|---|---|---|---|---|---|---|---|---|---|
float |
to nearest |
2 |
24 |
6 |
8 |
-125 |
-37 |
128 |
38 |
tiny |
traps |
double |
to nearest |
2 |
53 |
15 |
17 |
-1021 |
-307 |
1024 |
308 |
tiny |
traps |
long double |
to nearest |
2 |
53 |
15 |
17 |
-1021 |
-307 |
1024 |
308 |
tiny |
traps |
cpp_dec_float_50 |
indeterminate |
10 |
50 |
50 |
80 |
-222953000 |
-67108864 |
222953000 |
67108864 |
no |
no |
bin_128bit_double_type |
to nearest |
2 |
377 |
113 |
115 |
-2147482894 |
-646392082 |
2147482893 |
646392082 |
no |
traps |
Table 1.7. Floating-point types functions (std::numeric_limits<T>::is_integer
== false
)
function |
float |
double |
long double |
cpp_dec_50 |
cpp_bin_128 |
---|---|---|---|---|---|
max |
3.40282e+038 |
1.79769e+308 |
1.79769e+308 |
1e+67108865 |
1.85906e+646456766 |
min |
1.17549e-038 |
2.22507e-308 |
2.22507e-308 |
1e-67108864 |
5.37906e-646456767 |
epsilon |
1.19209e-007 |
2.22045e-016 |
2.22045e-016 |
1e-49 |
6.49713e-114 |
round_error |
0.5 |
0.5 |
0.5 |
0.5 |
0.5 |
infinity |
1.#INF |
1.#INF |
1.#INF |
inf |
inf |
quiet_NaN |
1.#QNAN |
1.#QNAN |
1.#QNAN |
nan |
nan |
signaling_NaN |
1.#QNAN |
1.#QNAN |
1.#QNAN |
0 |
0 |
denorm_min |
1.4013e-045 |
4.94066e-324 |
4.94066e-324 |
0 |
0 |