Heim >Backend-Entwicklung >C++ >Wann sind „const Foo&&' Rvalue-Referenzen in C nützlich?
In C könnte man den Nutzen von R-Wert-Referenzen auf konstante Objekte in Frage stellen. Um tiefer in dieses Thema einzutauchen, analysieren wir die Frage: „Gibt es Szenarien, in denen const Foo& & von Vorteil sein kann, vorausgesetzt, Foo ist ein Klassentyp?“
Überraschenderweise bieten const rvalue-Referenzen deutliche Vorteile. Der C 0x-Entwurf selbst veranschaulicht ihre Verwendung im folgenden Code:
template <class T> void ref(const T& &) = delete; template <class T> void cref(const T& &) = delete;
Diese Überladungen verhindern effektiv, dass andere Funktionen wie ref(T&) oder cref(const T&) an R-Wert-Objekte gebunden werden. Dies garantiert das beabsichtigte Verhalten dieser Funktionen.
Im offiziellen Standarddokument N3290, das nicht öffentlich verfügbar ist, ist derselbe Code in Abschnitt 20.8 enthalten:
template <class T> void ref(const T& &) = delete; template <class T> void cref(const T& &) = delete;
Darüber hinaus ist im Im neuesten Entwurf, N3485, sind diese Konstantwert-Referenzüberladungen in Abschnitt 20.8 immer noch vorhanden, was ihre Fortsetzung hervorhebt Relevanz.
Während man zunächst annehmen könnte, dass konstante Wertreferenzen nicht nützlich sind, unterstreichen ihre praktischen Anwendungen innerhalb des C-Standards und anderer Kontexte ihre Bedeutung.
Das obige ist der detaillierte Inhalt vonWann sind „const Foo&&' Rvalue-Referenzen in C nützlich?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!