Heim > Backend-Entwicklung > C++ > Wann sind „const Foo&&' Rvalue-Referenzen nützlich?

Wann sind „const Foo&&' Rvalue-Referenzen nützlich?

DDD
Freigeben: 2024-12-09 19:00:22
Original
581 Leute haben es durchsucht

When Are `const Foo&&` Rvalue References Useful?

Rvalue-Referenzen auf Const: Eine praktische Perspektive

Trotz der allgemeinen Überzeugung, dass Rvalue-Referenzen auf const (const Foo&&) keinen Nutzen haben, gibt es keinen Nutzen sind in der Tat praktische Anwendungen für sie, wie der Entwurf C 0x selbst zeigt.

Der C 0x Draft verwendet solche Referenzen in verschiedenen Fällen, um eine unerwünschte Bindung von R-Werten an andere ref(T&)- und cref(const T&)-Funktionen zu verhindern. Diese Funktionen sind speziell darauf ausgelegt, nur L-Werte (Verweise auf Objekte) zu akzeptieren, und R-Wert-Referenzen auf const stellen sicher, dass R-Werte (Verweise auf Temporäre) nicht fälschlicherweise gebunden werden.

Kürzlich, bei der Durchsicht des offiziellen Standards N3290 (nicht öffentlich). zugänglich), haben wir die folgende Zeile in 20.8 Funktionsobjekten entdeckt [function.objects]/p2:

template void ref(const T&&) = delete;
template void cref(const T&&) = delete;

Eine weitere Untersuchung des neuesten Post-C 11-Entwurfs, N3485 (öffentlich verfügbar), bestätigt die Persistenz dieser Zeilen in 20.8 Funktionsobjekten [function.objects]/p2 .

Diese Beispiele veranschaulichen die Nützlichkeit von R-Wert-Verweisen auf const in bestimmten Szenarien, insbesondere wenn es darum geht, die Richtigkeit sicherzustellen Verhalten bei Funktionsüberladungen und Verhinderung unbeabsichtigter Bindung von R-Werten.

Das obige ist der detaillierte Inhalt vonWann sind „const Foo&&' Rvalue-Referenzen nützlich?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage