Namespaces
Variants

std::numeric_limits<T>::min

De es.cppreference.net
 
 
Biblioteca de utilidades
Soporte del lenguaje
Soporte de tipos (tipos básicos, RTTI)
Macros de prueba de funcionalidades de la biblioteca (C++20)
Utilidades de programa
Funciones variádicas
Soporte de corrutinas (C++20)
Soporte de contratos (C++26)
Comparación de tres vías
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

Utilidades generales
Operadores relacionales (obsoleto en C++20)
 
Soporte de tipos
Tipos básicos
Tipos enteros de ancho fijo (C++11)
Tipos de punto flotante de ancho fijo (C++23)
(C++11)    
(C++17)
Límites numéricos
Interfaz de límites numéricos de C
Información de tipo en tiempo de ejecución
 
 
Definido en el encabezado <limits>
static T min() throw();
(hasta C++11)
static constexpr T min() noexcept;
(desde C++11)

Devuelve el valor finito mínimo representable por el tipo numérico T.

Para tipos de punto flotante con desnormalización, min() devuelve el valor normalizado positivo mínimo. Tenga en cuenta que este comportamiento puede ser inesperado, especialmente en comparación con el comportamiento de min() para tipos enteros. Para encontrar el valor que no tiene valores menores que él, use lowest().(desde C++11)

min() solo es significativo para tipos acotados y para tipos sin signo no acotados.

Valor de retorno

T std:: numeric_limits < T > :: min ( )
/* no especializado */ T ( )
bool false
char CHAR_MIN
signed char SCHAR_MIN
unsigned char ​ 0 ​
wchar_t WCHAR_MIN
char8_t (desde C++20) ​ 0 ​
char16_t (desde C++11) ​ 0 ​
char32_t (desde C++11) ​ 0 ​
short SHRT_MIN
unsigned short ​ 0 ​
int INT_MIN
unsigned int ​ 0 ​
long LONG_MIN
unsigned long ​ 0 ​
long long (desde C++11) LLONG_MIN
unsigned long long (desde C++11) ​ 0 ​
float FLT_MIN
double DBL_MIN
long double LDBL_MIN

Ejemplo

Demuestra el uso con tipos typedef, y la diferencia en el signo del resultado entre tipos enteros y de punto flotante:

#include <cstddef>
#include <iomanip>
#include <iostream>
#include <limits>
// we want to print char types as an integer without leading Fs
auto p(auto x) { return x; }
auto p(char x) { return x & static_cast<unsigned char>(-1); }
template <typename T>
void print_one(std::string_view type_name)
{
    constexpr T min = std::numeric_limits<T>::min();
    std::cout 
        << std::dec << std::defaultfloat << std::setw(14) << type_name
        << " (" << std::setw(2) << sizeof(T) << " bytes): " << +min;
    if constexpr (min != 0)
        std::cout << " or " << std::showbase << std::hex << std::hexfloat << p(min);
    std::cout << '\n';
}
#define SHOW(T) print_one<T>(#T)
int main()
{
    SHOW(bool);
    SHOW(char);
    SHOW(unsigned char);
    SHOW(short);
    SHOW(unsigned short);
    SHOW(signed);
    SHOW(unsigned);
    SHOW(std::ptrdiff_t);
    SHOW(std::size_t);
    SHOW(float);
    SHOW(double);
    SHOW(long double);
}

Salida posible:

          bool ( 1 bytes): 0
          char ( 1 bytes): -128 or 0x80
 unsigned char ( 1 bytes): 0
         short ( 2 bytes): -32768 or 0x8000
unsigned short ( 2 bytes): 0
        signed ( 4 bytes): -2147483648 or 0x80000000
      unsigned ( 4 bytes): 0
std::ptrdiff_t ( 8 bytes): -9223372036854775808 or 0x8000000000000000
   std::size_t ( 8 bytes): 0
         float ( 4 bytes): 1.17549e-38 or 0x1p-126
        double ( 8 bytes): 2.22507e-308 or 0x1p-1022
   long double (16 bytes): 3.3621e-4932 or 0x8p-16385

Véase también

[static] (C++11)
devuelve el valor finito más bajo del tipo dado, es decir, el valor más negativo para tipos con signo, ​ 0 ​ para tipos sin signo
(función miembro pública estática)
[static]
devuelve el valor subnormal positivo más pequeño del tipo de punto flotante dado
(función miembro pública estática)
[static]
devuelve el valor finito más grande del tipo dado
(función miembro pública estática)