Namensräume
Varianten
Aktionen

std::numeric_limits<T>::min

Von cppreference.com
 
 
Dienstprogramm-Bibliotheken
Sprachunterstützung
Typunterstützung (Basistypen, RTTI)
Bibliotheks-Feature-Test-Makros (C++20)
Programm-Dienstprogramme
Variadische Funktionen
Coroutine-Unterstützung (C++20)
Vertragsunterstützung (C++26)
Drei-Wege-Vergleich
(C++20)
(C++20)(C++20)(C++20)  
(C++20)(C++20)(C++20)

Allgemeine Hilfsmittel
Relationale Operatoren (in C++20 veraltet)
 
 
 
Definiert in Header <limits>
static T min() throw();
(bis C++11)
static constexpr T min() noexcept;
(seit C++11)

Gibt den kleinsten darstellbaren endlichen Wert des numerischen Typs T zurück.

Für Gleitkommatypen mit Denormalisierung gibt min() den kleinsten positiven normalisierten Wert zurück. Beachten Sie, dass dieses Verhalten unerwartet sein kann, insbesondere im Vergleich zum Verhalten von min() für ganzzahlige Typen. Verwenden Sie lowest(), um den Wert zu finden, der keine kleineren Werte hat.(seit C++11)

min() ist nur für beschränkte Typen und für unbeschränkte vorzeichenlose Typen sinnvoll.

[bearbeiten] Rückgabewert

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

[bearbeiten] Beispiel

Demonstriert die Verwendung mit Typedef-Typen und den Unterschied im Vorzeichen des Ergebnisses zwischen Ganzzahl- und Gleitkommatypen

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

Mögliche Ausgabe

          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

[bearbeiten] Siehe auch

[statisch] (C++11)
gibt den kleinsten endlichen Wert des gegebenen Typs zurück, d.h. den negativsten Wert für vorzeichenbehaftete Typen, 0 für vorzeichenlose Typen
(öffentliche statische Member-Funktion) [bearbeiten]
[static]
gibt den kleinsten positiven Subnormalwert des gegebenen Gleitkommatyps zurück
(öffentliche statische Member-Funktion) [bearbeiten]
[static]
gibt den größten endlichen Wert des gegebenen Typs zurück
(öffentliche statische Member-Funktion) [bearbeiten]