Ist es sicher, nicht konstante Elementfunktionen für rvalue-Objekte aufzurufen?

8

Beim Lesen von Multithreading in C ++ 11 habe ich festgestellt, dass einige Tutorials dies tun:

%Vor%

Meine Fragen sind:

  1. Im Allgemeinen ist es sicher, nicht konstante Elementfunktionen für temporäre (rvalue) Objekte aufzurufen?
  2. Insbesondere ist es sicher, dies für eine C ++ 11 std::thread ?
  3. zu tun
Log 21.08.2015, 13:17
quelle

2 Antworten

10
  1. Ja: Die nicht-const-Funktion wird ausgeführt, während das Objekt noch aktiv ist. Es gibt also kein Problem.
  2. Ja: std::thread verhält sich wie jeder andere Typ.
Paolo M 21.08.2015, 13:20
quelle
5

Um mehr über die zweite Frage zu erfahren, verhält sich das temporäre Objekt std::thread wie jedes andere temporäre Objekt:

Es wird zerstört, nachdem der vollständige Ausdruck , an den er gebunden ist, ausgewertet wird, was bedeutet der Destruktor wird immer aufgerufen, nachdem der .detach() Aufruf - std::terminate() nicht aufgerufen wurde.

    
milleniumbug 21.08.2015 15:30
quelle

Tags und Links