Heim >Backend-Entwicklung >C++ >Wann sind Const-Rvalue-Referenzen in C nützlich?

Wann sind Const-Rvalue-Referenzen in C nützlich?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-05 21:15:14173Durchsuche

When Are Const Rvalue References Useful in C  ?

Sind R-Wert-Verweise auf Const jemals nützlich?

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!

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