In C stehen Weiterleitungsreferenzen und R-Wert-Referenzen in einer besonderen Beziehung und haben eine ähnliche Syntax. Diese Ähnlichkeit wirft die Frage auf, ob sie Verwirrung stiftet und ob alternative Syntaxen in Betracht gezogen wurden.
Universelle Referenzen (auch als Weiterleitungsreferenzen bezeichnet) verwenden die Syntax T&&. Sie unterscheiden sich von R-Wert-Referenzen (T&&) durch ihre Fähigkeit, sowohl an L-Werte (Verweise auf Objekte) als auch an R-Werte (Objekte selbst) zu binden.
Die Begründung dahinter Die gemeinsame Syntax für Weiterleitungsreferenzen und R-Wert-Referenzen liegt in ihrer nahtlosen Integration in die Regeln für die Ableitung von Vorlagenargumenten und die Reduzierung von Referenzen. Durch die Verwendung derselben Syntax können universelle Referenzen basierend auf dem Kontext entweder als l-Wert-Referenzen (T&) oder als r-Wert-Referenzen (T&&) abgeleitet werden.
Dieser Ansatz vermeidet die Notwendigkeit einer zusätzlichen, komplexeren Syntax . Wenn beispielsweise T&@ für universelle Referenzen verwendet würde, könnte der Funktionsparametertyp T&@ werden. oder T&&, die vom tatsächlichen, vom Compiler abgeleiteten Typ abweichen würden.
Es ist nicht klar, ob alternative Syntaxen für universelle Referenzen bei der Standardisierung ernsthaft in Betracht gezogen wurden Verfahren. Die konsistente Syntax passt jedoch gut zum bestehenden Typsystem und sorgt für Klarheit beim Verständnis des Verhaltens von Referenzen im Allgemeinen.
Zusammenfassend lässt sich sagen, dass die gemeinsame Syntax für die Weiterleitung von Referenzen und R-Wert-Referenzen die Typableitung und das Reduzieren von Referenzen ermöglicht arbeiten nahtlos, ohne dass zusätzliche Syntax oder verwirrende Grammatikregeln erforderlich sind.
Das obige ist der detaillierte Inhalt vonWarum haben Weiterleitungsreferenzen und Rvalue-Referenzen in C dieselbe Syntax?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!