Modernes C++ programmieren

Okt 23, 2024

lst-1001-godb.cpp

//#(compile) c++; compiler:g132; options:-O3 -std=c++23; libs:-
// https://godbolt.org/z/hvq5dbzde 
#include <iostream>
#include <thread>
#include <chrono>
using namespace std::chrono; // seconds, suffix s

void delayPrint(seconds s, const char* msg) { //                     (ERR)  roher Zeiger
    std::this_thread::sleep_for(s);
    std::cout << msg << std::endl;            //                     (ERR)  das klappt nicht
}

void lauf() {
    const char risiko[] = "Das geht nicht gut...";
    std::jthread m{ delayPrint, 1s, risiko }; //                     (ERR)  roher Zeiger
    m.detach();
    // hier wird der Bereich von 'risiko' verlassen
}
int main() {
    lauf();
    std::this_thread::sleep_for(2s);          // noch 2 Sekunden warten
}