std::stop_callback<Callback>::stop_callback
Von cppreference.com
< cpp | thread | stop callback
| template< class C > explicit stop_callback( const std::stop_token& st, C&& cb ) noexcept(/*siehe unten*/); |
(1) | (seit C++20) |
| template< class C > explicit stop_callback( std::stop_token&& st, C&& cb ) noexcept(/*siehe unten*/); |
(2) | (seit C++20) |
| stop_callback( const stop_callback& ) = delete; |
(3) | (seit C++20) |
| stop_callback( stop_callback&& ) = delete; |
(4) | (seit C++20) |
Erstellt ein neues stop_callback-Objekt und speichert und registriert die Callback-Funktion cb im zugehörigen Stop-Zustand des gegebenen std::stop_token, für eine spätere Ausführung, falls das Stoppen bei der zugehörigen std::stop_source angefordert wird.
1) Erstellt einen
stop_callback für das gegebene st std::stop_token (kopiert), mit der gegebenen aufrufbaren Callback-Funktion cb.2) Erstellt einen
stop_callback für das gegebene st std::stop_token (verschoben), mit der gegebenen aufrufbaren Callback-Funktion cb.Beide Konstruktoren nehmen an der Überladungsauflösung teil, nur wenn Callback und C constructible_from von std::constructible_from<Callback, C> erfüllen. Wenn Callback und C das Konzept erfüllen, aber dessen semantische Anforderung nicht erfüllen, ist das Verhalten undefiniert.
[edit] Parameter
| st | - | Ein std::stop_token-Objekt, mit dem dieses stop_callback-Objekt registriert werden soll |
| cb | - | Der Typ, der aufgerufen werden soll, wenn das Stoppen angefordert wird |
[edit] Exceptions
1,2)
noexcept-Spezifikation:
Jede Ausnahme, die beim Konstruktor-Initialisieren des gegebenen Callbacks in das noexcept(std::is_nothrow_constructible_v<Callback, C>)
stop_callback-Objekt geworfen wird.[edit] Notes
Wenn für den übergebenen std::stop_token st.stop_requested() == true gilt, dann wird die Callback-Funktion im aktuellen Thread aufgerufen, bevor der Konstruktor zurückkehrt.