Im Bereich der C-Programmierung stellt sich eine interessante Frage: Erfüllen R-Wert-Verweise auf Const-Klassentypen irgendeinen Zweck? Während man zunächst annehmen könnte, dass sie überflüssig sind, zeigt eine genauere Betrachtung, dass sie gelegentlich nützlich sind.
Der Entwurf des C 0x-Sprachstandards liefert ein Beispiel für ihre Anwendung. Zwei Funktionsvorlagen, ref und cref, sind wie folgt definiert:
template <class T> void ref(const T&&) = delete; template <class T> void cref(const T&&) = delete;
Diese Überladungen erfüllen einen wichtigen Zweck: Sie verhindern, dass die anderen Funktionen ref(T&) und cref(const T&) mit R-Werten aufgerufen werden. Dies wäre möglich, wenn die R-Wert-Verweise auf const nicht definiert wären.
Aktualisierung:
Bei weiterer Prüfung des offiziellen C-Standards (N3290) dieselben Funktionsvorlagen erscheinen in Abschnitt 20.8 [function.objects]/p2. Darüber hinaus enthält der neueste Entwurf nach C 11 (N3485) diese Vorlagen ebenfalls an derselben Stelle.
Das obige ist der detaillierte Inhalt vonWann sind Const-Rvalue-Referenzen in C nützlich?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!