Modernes C++ programmieren

Okt 23, 2024

lst-0608-godb.cpp

//#(compile) c++; compiler:g132; options:-O3 -std=c++23; libs:-
// https://godbolt.org/z/oY9v9a8d6 
#include <iostream>                                  // cout
#include <limits>                                    // numeric_limits
template<typename INT_TYP>                           // Template mit Typargument
void infos(const char* name) {
    using L = typename std::numeric_limits<INT_TYP>; // kürzer umbenennen
    std::cout
        << name
        << " zahlenbits:" << L::digits               // Bits ohne Vorzeichenbit
        << " vorzeichen:" << L::is_signed            // speichert Vorzeichen?
        << " min:"<< (long long)L::min()             // kleinster möglicher Wert
        << " max:"<< (long long)L::max()             // größter möglicher Wert
        << "\n";
}
int main() {
    infos<signed char>("char");                      // kleinster int-Typ
    infos<short>("short");
    infos<int>("int");
    infos<long>("long");
    infos<long long>("long long");                   // größter int-Typ
}