---
name: "std::__numeric_limits_base"
section: "3"
platform: "linux"
package: "gcc"
version: "16.2.1+r23+gd564253eb6c8-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/std::__numeric_limits_base"
---

# std::\_\_numeric\_limits\_base(3)

Part of std::numeric\_limits.

## NAME

std::\_\_numeric\_limits\_base - Part of std::numeric\_limits.

## SYNOPSIS

\#include \<limits\>

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 \>**.

### 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

Part of std::numeric\_limits.

The static const members are usable as integral constant expressions.

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

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

### bool std::\_\_numeric\_limits\_base::has\_signaling\_NaN \[static\], \[constexpr\]

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

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

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

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