STD::NUMERIC_LIMITS(3cxx)

πŸ’– NAME πŸ’–

Okay so bestie, welcome to the std::numeric_limits< _Tp >(3cxx) page β€” that’s the 3cxx manual name folded right up here so we don’t have to copy the header line like a robot. This one is literally Properties of fundamental types. πŸ’…


✨ SYNOPSIS ✨

#include <limits>

Inherits std::__numeric_limits_base.

Inherited by std::numeric_limits< const _Tp >, std::numeric_limits< const volatile _Tp >, and std::numeric_limits< volatile _Tp >.

🌸 Static Public Member Functions 🌸

  • static constexpr _Tp denorm_min () noexcept β€” the teeny-tiny denormalized minimum vibe.
  • static constexpr _Tp epsilon () noexcept β€” machine epsilon, coming through.
  • static constexpr _Tp infinity () noexcept β€” infinity representation, if the type has one.
  • static constexpr _Tp lowest () noexcept β€” lowest finite value energy.
  • static constexpr _Tp max () noexcept β€” the maximum finite value, periodt.
  • static constexpr _Tp min () noexcept β€” the minimum finite value, or the minimum positive normalized value for floating types with denormalization.
  • static constexpr _Tp quiet_NaN () noexcept β€” quiet Not a Number representation, if available.
  • static constexpr _Tp round_error () noexcept β€” maximum rounding error measurement, see LIA-1.
  • static constexpr _Tp signaling_NaN () noexcept β€” signaling Not a Number representation, if available.

πŸŽ€ Static Public Attributes πŸŽ€

  • static constexpr int digits β€” radix digits that can be represented without change.
  • static constexpr int digits10 β€” base 10 digits that can be represented without change.
  • static constexpr float_denorm_style has_denorm β€” denormalization style info.
  • static constexpr bool has_denorm_loss β€” denormalization loss detection flag.
  • static constexpr bool has_infinity β€” infinity representation flag.
  • static constexpr bool has_quiet_NaN β€” quiet NaN representation flag.
  • static constexpr bool has_signaling_NaN β€” signaling NaN representation flag.
  • static constexpr bool is_bounded β€” bounded set of representable values flag.
  • static constexpr bool is_exact β€” exact representation flag.
  • static constexpr bool is_iec559 β€” IEC 559 / IEEE 754 adherence flag.
  • static constexpr bool is_integer β€” integer type flag.
  • static constexpr bool is_modulo β€” modulo type flag.
  • static constexpr bool is_signed β€” signed type flag.
  • static constexpr bool is_specialized β€” specialization flag.
  • static constexpr int max_digits10 β€” base 10 digits needed to differentiate values.
  • static constexpr int max_exponent β€” maximum positive exponent info.
  • static constexpr int max_exponent10 β€” maximum positive base-10 exponent info.
  • static constexpr int min_exponent β€” minimum negative exponent info.
  • static constexpr int min_exponent10 β€” minimum negative base-10 exponent info.
  • static constexpr int radix β€” base of the representation / exponent representation.
  • static constexpr float_round_style round_style β€” rounding style info.
  • static constexpr bool tinyness_before β€” tininess-before-rounding flag.
  • static constexpr bool traps β€” trapping implementation flag.

πŸ¦‹ Detailed Description πŸ¦‹

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

This class lets a program 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. No cap, that’s just the rule. πŸ’–


🌟 Member Function Documentation 🌟

πŸ’« denorm_min () πŸ’«

Signature: template<typename _Tp > static constexpr _Tp std::numeric_limits< _Tp >::denorm_min () β€” tags: [inline], [static], [constexpr], [noexcept].

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

πŸ’« epsilon () πŸ’«

Signature: template<typename _Tp > static constexpr _Tp std::numeric_limits< _Tp >::epsilon () β€” tags: [inline], [static], [constexpr], [noexcept].

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

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

πŸ’« infinity () πŸ’«

Signature: template<typename _Tp > static constexpr _Tp std::numeric_limits< _Tp >::infinity () β€” tags: [inline], [static], [constexpr], [noexcept].

The representation of positive infinity, if has_infinity.

πŸ’« lowest () πŸ’«

Signature: template<typename _Tp > static constexpr _Tp std::numeric_limits< _Tp >::lowest () β€” tags: [inline], [static], [constexpr], [noexcept].

A finite value x such that there is no other finite value y where y < x.

Referenced by std::normal_distribution< _RealType >::min(), std::cauchy_distribution< _RealType >::min(), std::student_t_distribution< _RealType >::min(), and std::extreme_value_distribution< _RealType >::min().

πŸ’« max () πŸ’«

Signature: template<typename _Tp > static constexpr _Tp std::numeric_limits< _Tp >::max () β€” tags: [inline], [static], [constexpr], [noexcept].

The maximum finite value.

Referenced by these absolute legends:

  • std::normal_distribution< _RealType >::max()
  • std::lognormal_distribution< _RealType >::max()
  • std::gamma_distribution< _RealType >::max()
  • std::chi_squared_distribution< _RealType >::max()
  • std::cauchy_distribution< _RealType >::max()
  • std::fisher_f_distribution< _RealType >::max()
  • std::student_t_distribution< _RealType >::max()
  • std::bernoulli_distribution::max()
  • std::geometric_distribution< _IntType >::max()
  • std::negative_binomial_distribution< _IntType >::max()
  • std::poisson_distribution< _IntType >::max()
  • std::exponential_distribution< _RealType >::max()
  • std::weibull_distribution< _RealType >::max()
  • std::extreme_value_distribution< _RealType >::max()
  • std::tr2::dynamic_bitset< _WordT, _Alloc >::max_size()
  • std::independent_bits_engine< _RandomNumberEngine, __w, _UIntType >::operator()()
  • std::binomial_distribution< _IntType >::operator()()
  • std::poisson_distribution< _IntType >::operator()()
  • std::operator<<()

πŸ’« min () πŸ’«

Signature: template<typename _Tp > static constexpr _Tp std::numeric_limits< _Tp >::min () β€” tags: [inline], [static], [constexpr], [noexcept].

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

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

πŸ’« quiet_NaN () πŸ’«

Signature: template<typename _Tp > static constexpr _Tp std::numeric_limits< _Tp >::quiet_NaN () β€” tags: [inline], [static], [constexpr], [noexcept].

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

πŸ’« round_error () πŸ’«

Signature: template<typename _Tp > static constexpr _Tp std::numeric_limits< _Tp >::round_error () β€” tags: [inline], [static], [constexpr], [noexcept].

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

πŸ’« signaling_NaN () πŸ’«

Signature: template<typename _Tp > static constexpr _Tp std::numeric_limits< _Tp >::signaling_NaN () β€” tags: [inline], [static], [constexpr], [noexcept].

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


🌈 Member Data Documentation 🌈

  • digits β€” signature: constexpr int std::__numeric_limits_base::digits β€” tags: [static], [constexpr], [inherited]. 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.
  • digits10 β€” signature: constexpr int std::__numeric_limits_base::digits10 β€” tags: [static], [constexpr], [inherited]. The number of base 10 digits that can be represented without change.
  • has_denorm β€” signature: constexpr float_denorm_style std::__numeric_limits_base::has_denorm β€” tags: [static], [constexpr], [inherited]. See std::float_denorm_style for more information.
  • has_denorm_loss β€” signature: constexpr bool std::__numeric_limits_base::has_denorm_loss β€” tags: [static], [constexpr], [inherited]. True if loss of accuracy is detected as a denormalization loss, rather than as an inexact result.
  • has_infinity β€” signature: constexpr bool std::__numeric_limits_base::has_infinity β€” tags: [static], [constexpr], [inherited]. True if the type has a representation for positive infinity.
  • has_quiet_NaN β€” signature: constexpr bool std::__numeric_limits_base::has_quiet_NaN β€” tags: [static], [constexpr], [inherited]. True if the type has a representation for a quiet (non-signaling) Not a Number.
  • has_signaling_NaN β€” signature: constexpr bool std::__numeric_limits_base::has_signaling_NaN β€” tags: [static], [constexpr], [inherited]. True if the type has a representation for a signaling Not a Number.
  • is_bounded β€” signature: constexpr bool std::__numeric_limits_base::is_bounded β€” tags: [static], [constexpr], [inherited]. 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.
  • is_exact β€” signature: constexpr bool std::__numeric_limits_base::is_exact β€” tags: [static], [constexpr], [inherited]. 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.
  • is_iec559 β€” signature: constexpr bool std::__numeric_limits_base::is_iec559 β€” tags: [static], [constexpr], [inherited]. 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.)
  • is_integer β€” signature: constexpr bool std::__numeric_limits_base::is_integer β€” tags: [static], [constexpr], [inherited]. True if the type is integer.
  • is_modulo β€” signature: constexpr bool std::__numeric_limits_base::is_modulo β€” tags: [static], [constexpr], [inherited]. 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.
  • is_signed β€” signature: constexpr bool std::__numeric_limits_base::is_signed β€” tags: [static], [constexpr], [inherited]. True if the type is signed.
  • is_specialized β€” signature: constexpr bool std::__numeric_limits_base::is_specialized β€” tags: [static], [constexpr], [inherited]. This will be true for all fundamental types (which have specializations), and false for everything else.
  • max_digits10 β€” signature: constexpr int std::__numeric_limits_base::max_digits10 β€” tags: [static], [constexpr], [inherited]. The number of base 10 digits required to ensure that values which differ are always differentiated.
  • max_exponent β€” signature: constexpr int std::__numeric_limits_base::max_exponent β€” tags: [static], [constexpr], [inherited]. The maximum positive integer such that radix raised to the power of (one less than that integer) is a representable finite floating point number.
  • max_exponent10 β€” signature: constexpr int std::__numeric_limits_base::max_exponent10 β€” tags: [static], [constexpr], [inherited]. The maximum positive integer such that 10 raised to that power is in the range of representable finite floating point numbers.
  • min_exponent β€” signature: constexpr int std::__numeric_limits_base::min_exponent β€” tags: [static], [constexpr], [inherited]. The minimum negative integer such that radix raised to the power of (one less than that integer) is a normalized floating point number.
  • min_exponent10 β€” signature: constexpr int std::__numeric_limits_base::min_exponent10 β€” tags: [static], [constexpr], [inherited]. The minimum negative integer such that 10 raised to that power is in the range of normalized floating point numbers.
  • radix β€” signature: constexpr int std::__numeric_limits_base::radix β€” tags: [static], [constexpr], [inherited]. For integer types, specifies the base of the representation. For floating types, specifies the base of the exponent representation.
  • round_style β€” signature: constexpr float_round_style std::__numeric_limits_base::round_style β€” tags: [static], [constexpr], [inherited]. See std::float_round_style for more information. This is only meaningful for floating types; integer types will all be round_toward_zero.
  • tinyness_before β€” signature: constexpr bool std::__numeric_limits_base::tinyness_before β€” tags: [static], [constexpr], [inherited]. True if tininess is detected before rounding. (see IEC 559)
  • traps β€” signature: constexpr bool std::__numeric_limits_base::traps β€” tags: [static], [constexpr], [inherited]. True if trapping is implemented for this type.

🫢 Author 🫢

Generated automatically by Doxygen for libstdc++ from the source code.

πŸ’– Cute little footer sign-off, bestie: source/version vibe is libstdc++, and there’s no extra date printed on this footer line β€” so consider this your lovingly timestamped goodbye from the 3cxx page. Mwah! πŸ’‹βœ¨

πŸ“¦ where this page comes from