Modernes C++ programmieren

Okt 23, 2024

lst-0991-godb.cpp

//#(compile) c++; compiler:g132; options:-O3 -std=c++23; libs:-
// https://godbolt.org/z/qnadYPWh1 
#include <iostream>
#include <thread>
using std::cout; using std::endl;

long fib(long n) { return n<=1 ? n : fib(n-1)+fib(n-2); }
void aufgabe1() { auto r = fib(40); cout << "fib(40)=" << r << endl; }
void aufgabe2() { auto r = fib(41); cout << "fib(41)=" << r << endl; }
void aufgabe3() { auto r = fib(42); cout << "fib(42)=" << r << endl; }

struct HintergrundAufgabe {
    void operator()() const {
        aufgabe1();
        aufgabe2();
        aufgabe3();
    }
};

int main() {
    HintergrundAufgabe hintergrundAufgabe{};  // Initialisierung, berechnet noch nichts
    std::jthread meinThread{ hintergrundAufgabe }; // Berechnung startet
}