1. L-Werte und R-Werte: Es gibt keine Standarddefinition für L-Werte und R-Werte in C++, aber es gibt ein weithin anerkanntes Sprichwort: diejenigen, die Adressen annehmen können, Namen haben und nicht temporär sind l-Werte; diejenigen, die keine Adressen annehmen können, sind temporär ein R-Wert. Es ist ersichtlich, dass unmittelbare Werte, von Funktionen zurückgegebene Werte usw. alle nicht anonyme Objekte (einschließlich Variablen) sind, die von zurückgegeben werden Funktionen, konstante Objekte usw. sind im Wesentlichen alle L-Werte. Wie oben verstanden, werden die Erstellung und Zerstörung vom Compiler hinter den Kulissen gesteuert. Der Programmierer kann nur sicherstellen, dass die R-Werte (einschließlich unmittelbarer Zahlen) in dieser Zeile gültig sind des Codes; und diejenigen, die vom Benutzer erstellt wurden und deren Lebensdauer durch die Bereichsregeln ermittelt werden kann, sind L-Werte (einschließlich Verweise auf lokale Variablen und von Funktionen zurückgegebene Konstantenobjekte), zum Beispiel: int& foo(){int tmp; ;} int fooo(){int ret
1. Eine kurze Analyse von R-Wert-Referenzen, Übertragungssemantik und perfekter Weiterleitung in C++11
Einführung: Bewegungssemantik ist ein wichtiges Konzept für C++11, und ich habe dieses Konzept immer vage verstanden. Nachdem ich die Informationen kürzlich durchgesehen hatte, fühlte ich mich plötzlich erleuchtet, also habe ich die R-Wert-Referenz, die Übertragungssemantik und die perfekte Weiterleitung in C++11 als Referenz aufgezeichnet
[Verwandte Q&A-Empfehlungen]:
c++ – Gibt es einen Konstantenwertverweis?
c++ – Warum der Rückgabewert von std::move() einer R-Wert-Referenz zugewiesen werden kann
Das obige ist der detaillierte Inhalt vonWie verwende ich R-Wert-Referenzen? Zusammenfassung der Verwendung des R-Wert-Referenzbeispiels. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!