Modernes C++ programmieren

Okt 23, 2024

lst-0938-godb.cpp

//#(compile) c++; compiler:g132; options:-O3 -std=c++23; libs:-
// 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
}