C ++ Temporäre Objekte sind unbenannte Objekte, die vom Compiler auf dem Stack erstellt werden. Sie werden während der Referenzinitialisierung und während der Auswertung von Ausdrücken verwendet, einschließlich Standardtypkonvertierungen, Argumentübergabe, Funktionsrückgaben und Auswertung des throw-Ausdrucks.
Ich habe einen einfachen Testfall erstellt, der ein merkwürdiges Verhalten zeigt, das mir in einer größeren Codebasis aufgefallen ist, an der ich gerade arbeite. Dieser Testfall ist unten. Ich verlasse mich auf den Operator "[]" der STL-Map, um...
25.10.2010, 19:02
Code geht unter:
%Vor%
Der obige Code kann nicht kompiliert werden, Fehler:
%Vor%
Aber, wenn ich den Code in etwas wie das ändern, kann es kompilieren:
%Vor%
Warum?
15.01.2012, 03:18
Betrachten Sie den folgenden Code:
%Vor%
Die Ausgabe des obigen Codes mit g++ file.cpp ist:
%Vor%
Die Ausgabe des obigen Codes mit g++ -fno-elide-constructors file.cpp ist:
%Vor%
Ich kenne Return-Value-Optimierung. Meine Frage...
14.11.2014, 19:16
Ich kann mir nicht vorstellen, dass dies nicht schon doppelt ist, aber ich kann die Antwort nicht leicht finden, da die komplexeren Szenarien speziell für C ++ die Diskussion zu dominieren scheinen 0 .
Ist es legal, die Adresse eines temporä...
29.01.2017, 23:38
Bearbeitet am 12. Februar
Ich habe gerade einen seltsamen Absturz mit einigen SWIG-generierten Python-Wrappern für einige C ++ - Klassen gemacht. Es scheint, dass die Kombination von SWIG und Python etwas daran interessiert ist, temporäre W...
12.02.2011, 00:45
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 Aus...
01.06.2017, 13:52