Modernes C++ programmieren

Okt 23, 2024

lst-0938-book.cpp

// https://godbolt.org/z/5Wd1rKrMe 
#include <chrono>
#include <iostream>
using namespace std::chrono; using std::cout;
using seconds32 = duration<int32_t>;                // andere Repräsentation
using zehntag = duration<int,std::ratio<86400*10>>; // andere Zeiteinheit
using fseconds = duration<double>;                  // Fließkommarepräsentation
int main() {
  seconds32 s{5};
  cout << milliseconds(s).count() << "ms\n";
  zehntag z{1};
  hours h = z;                 // Umwandlung kostenlos
  cout << "1 Zehntag hat "<<h.count()<<" Stunden\n";              // …240…
  fseconds fs{23.75};
  cout << fs.count() << "s\n"; // Fließkommaausgabe
  auto printDur = [](fseconds f) { cout << f.count() << "s\n"; }; // Funktion
  printDur(45ms + 63us);       // Umwandlung in fseconds
  // Ausgabe: 0.045063s
}