Wenn fertig, bitte Fenster schließen

Eigenschaften von Datentypen

PgmHeader
// Programm zur Ermittlung von einigen Eigenschaften
// von numerischen Datentypen

#include <iostream>
#include <limits>

using std::cout;
using std::endl;
using std::boolalpha;

// Ausgabe einiger Kenndaten für numerische Datentypen
template<typename T> void PrintNumLimits()
{
   // bool-Werte als true/false ausgeben anstelle von 1/0
   cout << boolalpha;
   // Überpruefen ob Kenndaten vorliegen
   if (std::numeric_limits<T>::is_specialized == 0)
   {
      cout << "keine numeric_limits Angaben vorhanden!\n";
      return;
   }
   // Kenndaten ausgeben
   cout << "Minimum: " << std::numeric_limits<T>::min() << endl;
   cout << "Maximum: " << std::numeric_limits<T>::max() << endl;
   cout << "Anzahl Bits (ohne Vorzeichen): " << std::numeric_limits<T>::digits << endl;
   cout << "Vorzeichenbehaftet: " << std::numeric_limits<T>::is_signed << endl;
   cout << "Ganzzahl (Integer): " << std::numeric_limits<T>::is_integer << endl;
   cout << "keine Rundungsfehler möglich: " << std::numeric_limits<T>::is_exact << endl;
   cout << "kleinster von 1 abweichender Wert: "
        << std::numeric_limits<T>::epsilon() << endl;
}

// main() Funktion
int main()
{
   // Innerhalb der spitzen Klammer den Datentyp angeben,
   // für den die Kenndaten ausgegeben werden sollen

   PrintNumLimits<unsigned long>();
}