Betrachten Sie das folgende Beispielprogramm:
%Vor%Die Ausgabe, die ich mit GCC 4.9.2 erhalte, ist:
%Vor%cpp.sh-Link: Ссылка
Allerdings nach cppreference über den Komma-Operator:
In einer Komma-Expression E1, E2 wird der Ausdruck E1 ausgewertet, sein Ergebnis wird verworfen und seine Nebenwirkungen werden beendet, bevor die Auswertung des Ausdrucks E2 beginnt.
Ich würde erwarten, dass ~t()
vor cout << "doing stuff"
Ist das ein Standardverhalten? Wenn ja, wo ist es im Standard definiert?
Der cppreference Wortlaut hier ist bedauerlich.
Wie bei jedem temporären, wird dieses bis zum Ende des full-expression , in dem es erscheint, bestehen bleiben.
Unter "Nebenwirkungen" wird über die Konstruktion des Temporären gesprochen.
Tags und Links c++ language-lawyer object-lifetime temporary-objects comma-operator