Modernes C++ programmieren

Okt 23, 2024

lst-0893-godb.cpp

//#(compile) c++; compiler:g132; options:-O3 -std=c++23; libs:-
// https://godbolt.org/z/M8xjcnKxq 
#include <format>
#include <chrono>
#include <string>
#include <string_view>
#include <iostream>
using namespace std; using namespace std::literals;
void pr(string_view s) { cout << s << endl; }
double pi = 3.14159265359;

int main() {
  pr(format("Hallo, {}!", "Leser"));             // einfacher C-String
  pr(format("Hallo, {}!", "Autor"s));            // einfacher String
  pr(format("Du bist {} Jahre alt.", 30));       // Ganzzahlen
  pr(format("Das macht {:.2f} Euro.", 19.9933)); // Fließkommazahl, 2 Stellen
  pr(format("Wissenschaftlich: {:e}", -44.876)); // ergibt "-4.487600e+01"
  pr(format("Binär von {} ist {:b}.", 42, 42));  // binär ohne Basis
  pr(format("Hex von {} ist {:#x}.", 73, 73));   // hexadezimal mit Basis
  pr(format("Mit Nullen aufgefüllt: {:03}", 7)); // ergibt "007"
  pr(format("|{0:<10}|{1:^10}|{2:>10}|", "li", "mi", "re"));
  // Ausrichtung und Index
  pr(format("{} {:.9}!", "Boa", "Constrictor")); // ohne Index, String abschneiden
  using namespace std::chrono;                   // schicke Zeitangaben:
  pr(format("{}, {}", 2023y/11/5, minutes{20})); // Ausgabe: 2023-11-05, 20min
}