Heim >Backend-Entwicklung >C++ >Was bedeutet das doppelte kaufmännische Und-Zeichen (&&) in C 11?

Was bedeutet das doppelte kaufmännische Und-Zeichen (&&) in C 11?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-22 05:54:09426Durchsuche

What Does the Double Ampersand (&&) Mean in C  11?

Dekodierung des doppelten kaufmännischen Und-Zeichens in C 11

C 11 führt einen neuen Operator ein, das doppelte kaufmännische Und-Zeichen (T&&), das große Aufmerksamkeit erregt hat . Dieses rätselhafte Symbol hat Neugier und Fragen hinsichtlich seiner Bedeutung und Nützlichkeit geweckt.

Was ist das doppelte kaufmännische Und?

Der doppelte kaufmännische Und-Operator deklariert eine R-Wert-Referenz. Diese R-Wert-Referenz kann im Gegensatz zu einer herkömmlichen L-Wert-Referenz in C 03 sowohl an R-Werte (temporäre Werte) als auch an L-Werte binden, ohne dass ein const-Qualifizierer erforderlich ist. Folglich ermöglicht es die Deklaration einer R-Wert-Referenzvariablen, die auf eine temporäre Variable verweisen kann.

Der Zweck von R-Wert-Referenzen

R-Wert-Referenzen sorgen in erster Linie für die folgenden Verbesserungen :

Bewegungssemantik:

Bewegung Die Semantik ermöglicht die Definition von Verschiebungskonstruktoren und Verschiebungszuweisungsoperatoren, die eine R-Wert-Referenz anstelle einer konstanten L-Wert-Referenz annehmen. Verschiebefunktionen simulieren das Kopierverhalten und vermeiden gleichzeitig die Notwendigkeit, die Quelle beizubehalten. Sie ändern typischerweise die Quelle, um den Besitz ihrer Ressourcen freizugeben, was zu effizienteren Vorgängen führt und unnötige Kopien reduziert.

Perfekte Weiterleitung:

R-Wert-Referenzen erleichtern die korrekte Weiterleitung von Argumente in Vorlagenfunktionen. Dies ermöglicht die Erstellung generischer Factory-Funktionen wie std::forward, die jede beliebige Kombination von L-Wert- oder R-Wert-Argumenten akzeptieren und diese an den entsprechenden Konstruktor übergeben können.

Zusätzliche Eigenschaften von R-Wert-Referenzen:

  • L-Werte bevorzugen L-Wert-Referenzen, während R-Werte bei Überladung R-Wert-Referenzen bevorzugen Auflösung.
  • R-Wert-Referenzen binden implizit an R-Werte und temporäre Werte, die aus impliziten Konvertierungen entstehen.
  • Benannte R-Wert-Referenzen sind L-Werte, während unbenannte R-Wert-Referenzen R-Werte sind.

Das obige ist der detaillierte Inhalt vonWas bedeutet das doppelte kaufmännische Und-Zeichen (&&) in C 11?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn