std::__num...imits_base(3)

πŸ’– std::__numeric_limits_base πŸ’–

okay bestie, welcome to the Library Functions Manual, section 3, and today's main character is std::__numeric_limits_base πŸ’… no cap, she's literally the backbone of std::numeric_limits and she deserves her flowers.


✨ NAME ✨

std::__numeric_limits_base β€” Part of std::numeric_limits.

like. that's the whole vibe. she's part of the bigger thing. the foundation. the blueprint. the blueprint of the blueprint honestly πŸŽ€


🌸 SYNOPSIS 🌸

#include <limits>

okay so first things first, you gotta pull in the <limits> header, obviously πŸ’–

Inherited by std::numeric_limits< bool >, std::numeric_limits< char >, std::numeric_limits< char16_t >, std::numeric_limits< char32_t >, std::numeric_limits< const _Tp >, std::numeric_limits< const volatile _Tp >, std::numeric_limits< double >, std::numeric_limits< float >, std::numeric_limits< int >, std::numeric_limits< long >, std::numeric_limits< long double >, std::numeric_limits< long long >, std::numeric_limits< short >, std::numeric_limits< signed char >, std::numeric_limits< unsigned char >, std::numeric_limits< unsigned int >, std::numeric_limits< unsigned long >, std::numeric_limits< unsigned long long >, std::numeric_limits< unsigned short >, std::numeric_limits< volatile _Tp >, std::numeric_limits< wchar_t >, and std::numeric_limits< _Tp >.

✨ that's the whole squad ✨ like she's the mom and every single one of those is her kid showing up to the family reunion 🫢

πŸ¦‹ Static Public Attributes πŸ¦‹

the full roster, no skips, no cuts:

  • 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 πŸŽ€

Part of std::numeric_limits.

The static const members are usable as integral constant expressions. 🧚 like they're compile-time besties, they show up to the party already knowing everything.

πŸ“Œ Note

This is a separate class for purposes of efficiency; you should only access these members as part of an instantiation of the std::numeric_limits class.

bestie listen. don't talk to her directly. she's for efficiency, she's not here to socialize 😭 access these members through an instantiation of std::numeric_limits, periodt. iykyk.

πŸ‘‘ Member Data Documentation πŸ‘‘

int std::__numeric_limits_base::digits [static], [constexpr]

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.

πŸ’« Referenced by std::generate_canonical(), std::independent_bits_engine< _RandomNumberEngine, __w, _UIntType >::operator()(), and std::linear_congruential_engine< _UIntType, __a, __c, __m >::seed().

int std::__numeric_limits_base::digits10 [static], [constexpr]

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

float_denorm_style std::__numeric_limits_base::has_denorm [static], [constexpr]

See std::float_denorm_style for more information.

bool std::__numeric_limits_base::has_denorm_loss [static], [constexpr]

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

bool std::__numeric_limits_base::has_infinity [static], [constexpr]

True if the type has a representation for positive infinity. β™ΎοΈβœ¨

bool std::__numeric_limits_base::has_quiet_NaN [static], [constexpr]

True if the type has a representation for a quiet (non-signaling) Not a Number. 🀫 she's not here to cause drama.

bool std::__numeric_limits_base::has_signaling_NaN [static], [constexpr]

True if the type has a representation for a signaling Not a Number. πŸ“£ okay THIS one is the drama.

bool std::__numeric_limits_base::is_bounded [static], [constexpr]

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.

bool std::__numeric_limits_base::is_exact [static], [constexpr]

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.

πŸ’… not me pointing out that "exact" and "integer" are NOT the same thing. the way that being exact doesn't automatically make you an integer... she contains multitudes fr fr.

bool std::__numeric_limits_base::is_iec559 [static], [constexpr]

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.)

bool std::__numeric_limits_base::is_integer [static], [constexpr]

True if the type is integer.

bool std::__numeric_limits_base::is_modulo [static], [constexpr]

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.

🚨 okay the PR22200 thing? that's a real note, go read it, signed integers have ✨lore✨.

bool std::__numeric_limits_base::is_signed [static], [constexpr]

True if the type is signed.

bool std::__numeric_limits_base::is_specialized [static], [constexpr]

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

int std::__numeric_limits_base::max_digits10 [static], [constexpr]

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

int std::__numeric_limits_base::max_exponent [static], [constexpr]

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

int std::__numeric_limits_base::max_exponent10 [static], [constexpr]

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

int std::__numeric_limits_base::min_exponent [static], [constexpr]

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

int std::__numeric_limits_base::min_exponent10 [static], [constexpr]

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

int std::__numeric_limits_base::radix [static], [constexpr]

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

πŸ’« Referenced by std::generate_canonical().

float_round_style std::__numeric_limits_base::round_style [static], [constexpr]

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

bool std::__numeric_limits_base::tinyness_before [static], [constexpr]

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

bool std::__numeric_limits_base::traps [static], [constexpr]

True if trapping is implemented for this type. πŸͺ€


🫢 Author 🫢

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

like she didn't even write her own bio, the machine did it for her and honestly? iconic. πŸ€–βœ¨


okay that's the whole page bestie, you ate this, go forth and respect the std::numeric_limits instantiation πŸ™ˆπŸ’–

libstdc++ Β· std::__num...imits_base(3) β€” mwah, bye bye πŸ’‹πŸŽ€πŸŒΈ

πŸ“¦ where this page comes from
  • arch rolling: gcc 16.2.1+r23+gd564253eb6c8-1 Β· GPL-3.0-or-later WITH GCC-exception-3.1 AND GFDL-1.3-or-later
  • fedora 44: libstdc++-docs 16.0.1-0.10.fc44 Β· GPL-3.0-or-later AND LGPL-3.0-or-later AND (GPL-3.0-or-later WITH GCC-exception-3.1) AND (GPL-3.0-or-later WITH Texinfo-exception) AND (LGPL-2.1-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GNU-compiler-exception) AND BSL-1.0 AND GFDL-1.3-or-later AND Linux-man-pages-copyleft-2-para AND SunPro AND BSD-1-Clause AND BSD-2-Clause AND BSD-2-Clause-Views AND BSD-3-Clause AND BSD-4-Clause AND BSD-Source-Code AND Zlib AND MIT AND Apache-2.0 AND (Apache-2.0 WITH LLVM-Exception) AND ZPL-2.1 AND ISC AND LicenseRef-Fedora-Public-Domain AND HP-1986 AND curl AND Martin-Birgmeier AND HPND-Markus-Kuhn AND dtoa AND SMLNJ AND AMD-newlib AND OAR AND HPND-merchantability-variant AND HPND-Intel
  • fedora 44: libstdc++-docs 16.2.1-2.fc44
  • fedora 44: libstdc++-docs 16.2.1-3.fc44 Β· GPL-3.0-or-later AND LGPL-3.0-or-later AND (GPL-3.0-or-later WITH GCC-exception-3.1) AND (GPL-3.0-or-later WITH Texinfo-exception) AND (LGPL-2.1-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GNU-compiler-exception) AND BSL-1.0 AND GFDL-1.3-or-later AND Linux-man-pages-copyleft-2-para AND SunPro AND BSD-1-Clause AND BSD-2-Clause AND BSD-2-Clause-Views AND BSD-3-Clause AND BSD-4-Clause AND BSD-Source-Code AND Zlib AND MIT AND Apache-2.0 AND (Apache-2.0 WITH LLVM-Exception) AND ZPL-2.1 AND ISC AND LicenseRef-Fedora-Public-Domain AND HP-1986 AND curl AND Martin-Birgmeier AND HPND-Markus-Kuhn AND dtoa AND SMLNJ AND AMD-newlib AND OAR AND HPND-merchantability-variant AND HPND-Intel
  • πŸ’– girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms