libstdc++
std::numeric_limits< _Tp > Struct Template Reference
Inheritance diagram for std::numeric_limits< _Tp >:
[legend]

Static Public Member Functions

static constexpr _Tp denorm_min () noexcept
 
static constexpr _Tp epsilon () noexcept
 
static constexpr _Tp infinity () noexcept
 
static constexpr _Tp lowest () noexcept
 
static constexpr _Tp max () noexcept
 
static constexpr _Tp min () noexcept
 
static constexpr _Tp quiet_NaN () noexcept
 
static constexpr _Tp round_error () noexcept
 
static constexpr _Tp signaling_NaN () noexcept
 

Static Public Attributes

static constexpr int digits
 
static constexpr int digits10
 
static constexpr float_denorm_style has_denorm
 
static constexpr bool has_denorm_loss
 
static constexpr bool has_infinity
 
static constexpr bool has_quiet_NaN
 
static constexpr bool has_signaling_NaN
 
static constexpr bool is_bounded
 
static constexpr bool is_exact
 
static constexpr bool is_iec559
 
static constexpr bool is_integer
 
static constexpr bool is_modulo
 
static constexpr bool is_signed
 
static constexpr bool is_specialized
 
static constexpr int max_digits10
 
static constexpr int max_exponent
 
static constexpr int max_exponent10
 
static constexpr int min_exponent
 
static constexpr int min_exponent10
 
static constexpr int radix
 
static constexpr float_round_style round_style
 
static constexpr bool tinyness_before
 
static constexpr bool traps
 

Detailed Description

template<typename _Tp>
struct std::numeric_limits< _Tp >

Properties of fundamental types.

This class allows a program to obtain information about the representation of a fundamental type on a given platform. For non-fundamental types, the functions will return 0 and the data members will all be false.

Definition at line 312 of file limits.

Member Function Documentation

◆ denorm_min()

template<typename _Tp >
static constexpr _Tp std::numeric_limits< _Tp >::denorm_min ( )
inlinestaticnoexcept

The minimum positive denormalized value. For types where has_denorm is false, this is the minimum positive normalized value.

Definition at line 357 of file limits.

◆ epsilon()

template<typename _Tp >
static constexpr _Tp std::numeric_limits< _Tp >::epsilon ( )
inlinestaticnoexcept

The machine epsilon: the difference between 1 and the least value greater than 1 that is representable.

Definition at line 333 of file limits.

Referenced by std::generate_canonical(), std::binomial_distribution< _IntType >::operator()(), std::poisson_distribution< _IntType >::operator()(), and std::operator<<().

◆ infinity()

template<typename _Tp >
static constexpr _Tp std::numeric_limits< _Tp >::infinity ( )
inlinestaticnoexcept

The representation of positive infinity, if has_infinity.

Definition at line 341 of file limits.

◆ lowest()

template<typename _Tp >
static constexpr _Tp std::numeric_limits< _Tp >::lowest ( )
inlinestaticnoexcept

◆ max()

◆ min()

template<typename _Tp >
static constexpr _Tp std::numeric_limits< _Tp >::min ( )
inlinestaticnoexcept

The minimum finite value, or for floating types with denormalization, the minimum positive normalized value.

Definition at line 317 of file limits.

Referenced by std::bernoulli_distribution::min(), and std::independent_bits_engine< _RandomNumberEngine, __w, _UIntType >::operator()().

◆ quiet_NaN()

template<typename _Tp >
static constexpr _Tp std::numeric_limits< _Tp >::quiet_NaN ( )
inlinestaticnoexcept

The representation of a quiet Not a Number, if has_quiet_NaN.

Definition at line 346 of file limits.

◆ round_error()

template<typename _Tp >
static constexpr _Tp std::numeric_limits< _Tp >::round_error ( )
inlinestaticnoexcept

The maximum rounding error measurement (see LIA-1).

Definition at line 337 of file limits.

◆ signaling_NaN()

template<typename _Tp >
static constexpr _Tp std::numeric_limits< _Tp >::signaling_NaN ( )
inlinestaticnoexcept

The representation of a signaling Not a Number, if has_signaling_NaN.

Definition at line 351 of file limits.

Member Data Documentation

◆ digits

constexpr int std::__numeric_limits_base::digits
staticinherited

The number of radix digits that be represented without change: for integer types, the number of non-sign bits in the mantissa; for floating types, the number of radix digits in the mantissa.

Definition at line 211 of file limits.

◆ digits10

constexpr int std::__numeric_limits_base::digits10
staticinherited

The number of base 10 digits that can be represented without change.

Definition at line 214 of file limits.

◆ has_denorm

constexpr float_denorm_style std::__numeric_limits_base::has_denorm
staticinherited

See std::float_denorm_style for more information.

Definition at line 266 of file limits.

◆ has_denorm_loss

constexpr bool std::__numeric_limits_base::has_denorm_loss
staticinherited

True if loss of accuracy is detected as a denormalization loss, rather than as an inexact result.

Definition at line 270 of file limits.

◆ has_infinity

constexpr bool std::__numeric_limits_base::has_infinity
staticinherited

True if the type has a representation for positive infinity.

Definition at line 255 of file limits.

◆ has_quiet_NaN

constexpr bool std::__numeric_limits_base::has_quiet_NaN
staticinherited

True if the type has a representation for a quiet (non-signaling) Not a Number.

Definition at line 259 of file limits.

◆ has_signaling_NaN

constexpr bool std::__numeric_limits_base::has_signaling_NaN
staticinherited

True if the type has a representation for a signaling Not a Number.

Definition at line 263 of file limits.

◆ is_bounded

constexpr bool std::__numeric_limits_base::is_bounded
staticinherited

True if the set of values representable by the type is finite. All built-in types are bounded, this member would be false for arbitrary precision types.

Definition at line 279 of file limits.

◆ is_exact

constexpr bool std::__numeric_limits_base::is_exact
staticinherited

True if the type uses an exact representation. All integer types are exact, but not all exact types are integer. For example, rational and fixed-exponent representations are exact but not integer.

Definition at line 231 of file limits.

◆ is_iec559

constexpr bool std::__numeric_limits_base::is_iec559
staticinherited

True if-and-only-if the type adheres to the IEC 559 standard, also known as IEEE 754. (Only makes sense for floating point types.)

Definition at line 274 of file limits.

◆ is_integer

constexpr bool std::__numeric_limits_base::is_integer
staticinherited

True if the type is integer.

Definition at line 226 of file limits.

◆ is_modulo

constexpr bool std::__numeric_limits_base::is_modulo
staticinherited

True if the type is modulo. A type is modulo if, for any operation involving +, -, or * on values of that type whose result would fall outside the range [min(),max()], the value returned differs from the true value by an integer multiple of max() - min() + 1. On most machines, this is false for floating types, true for unsigned integers, and true for signed integers. See PR22200 about signed integers.

Definition at line 288 of file limits.

◆ is_signed

constexpr bool std::__numeric_limits_base::is_signed
staticinherited

True if the type is signed.

Definition at line 223 of file limits.

◆ is_specialized

constexpr bool std::__numeric_limits_base::is_specialized
staticinherited

This will be true for all fundamental types (which have specializations), and false for everything else.

Definition at line 206 of file limits.

◆ max_digits10

constexpr int std::__numeric_limits_base::max_digits10
staticinherited

The number of base 10 digits required to ensure that values which differ are always differentiated.

Definition at line 219 of file limits.

◆ max_exponent

constexpr int std::__numeric_limits_base::max_exponent
staticinherited

The maximum positive integer such that radix raised to the power of (one less than that integer) is a representable finite floating point number.

Definition at line 248 of file limits.

◆ max_exponent10

constexpr int std::__numeric_limits_base::max_exponent10
staticinherited

The maximum positive integer such that 10 raised to that power is in the range of representable finite floating point numbers.

Definition at line 252 of file limits.

◆ min_exponent

constexpr int std::__numeric_limits_base::min_exponent
staticinherited

The minimum negative integer such that radix raised to the power of (one less than that integer) is a normalized floating point number.

Definition at line 239 of file limits.

◆ min_exponent10

constexpr int std::__numeric_limits_base::min_exponent10
staticinherited

The minimum negative integer such that 10 raised to that power is in the range of normalized floating point numbers.

Definition at line 243 of file limits.

◆ radix

constexpr int std::__numeric_limits_base::radix
staticinherited

For integer types, specifies the base of the representation. For floating types, specifies the base of the exponent representation.

Definition at line 235 of file limits.

◆ round_style

constexpr float_round_style std::__numeric_limits_base::round_style
staticinherited

See std::float_round_style for more information. This is only meaningful for floating types; integer types will all be round_toward_zero.

Definition at line 299 of file limits.

◆ tinyness_before

constexpr bool std::__numeric_limits_base::tinyness_before
staticinherited

True if tininess is detected before rounding. (see IEC 559)

Definition at line 294 of file limits.

◆ traps

constexpr bool std::__numeric_limits_base::traps
staticinherited

True if trapping is implemented for this type.

Definition at line 291 of file limits.


The documentation for this struct was generated from the following file: