Namespaces
Variants

std::numeric_limits<T>::min

Depuis fr.cppreference.net
 
 
Bibliothèque d'utilitaires
Support linguistique
Support de type (types de base, RTTI)
Macros de test de fonctionnalités de la bibliothèque (C++20)
Utilitaires de programme
Fonctions variadiques
Support des coroutines (C++20)
Support des contrats (C++26)
Comparaison à trois voies
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

Utilitaires généraux
Opérateurs relationnels (déprécié en C++20)
 
 
 
Défini dans l'en-tête <limits>
static T min() throw();
(jusqu'à C++11)
static constexpr T min() noexcept;
(depuis C++11)

Retourne la valeur finie minimale représentable par le type numérique T.

Pour les types à virgule flottante avec dénormalisation, min() retourne la valeur normalisée positive minimale. Notez que ce comportement peut être inattendu, surtout comparé au comportement de min() pour les types entiers. Pour trouver la valeur qui n'a aucune valeur inférieure, utilisez lowest().(depuis C++11)

min() n'a de sens que pour les types bornés et pour les types non signés non bornés.

Valeur de retour

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

Exemple

Illustre l'utilisation avec des types typedef, et la différence de signe du résultat entre les types entiers et les types à virgule flottante :

#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);
}

Sortie possible :

          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

Voir aussi

[static] (C++11)
renvoie la valeur finie la plus basse du type donné, c'est-à-dire la valeur la plus négative pour les types signés, 0 pour les types non signés
(fonction membre publique statique)
[static]
renvoie la plus petite valeur subnormale positive du type à virgule flottante donné
(fonction membre publique statique)
[static]
renvoie la plus grande valeur finie du type donné
(fonction membre publique statique)