Heim >Backend-Entwicklung >C++ >Wie ermöglichen C 11-Referenzkollabierungsregeln eine perfekte Weiterleitung?
Rolle der Referenz-Kollapsregeln in C 11
Referenz-Kollapsregeln spielen eine entscheidende Rolle bei der Ermöglichung einer perfekten Weiterleitung in C 11. Perfekte Weiterleitung ermöglicht Funktionen zum nahtlosen Akzeptieren und Weitergeben von Parametern nach Wert, L-Wert-Referenz oder R-Wert Referenz.
Referenz-Kollapsregeln
Die Referenz-Kollapsregeln für C 11 sind:
Begründung für das Zusammenklappen von Referenzen
Diese Regeln stellen sicher, dass, unabhängig davon, wie ein Parameter übergeben wird (durch L-Wert, R-Wert oder R-Wert-Referenz), es wird von der Empfangsfunktion immer als der gewünschte Typ für perfekt „gesehen“. Weiterleitung.
Verwendung in C 11 STL-Dienstprogrammfunktionen
STL-Dienstprogrammfunktionen wie std::move() und std::forward() nutzen die Referenzreduzierung intern, um eine perfekte Weiterleitung zu ermöglichen. Zum Beispiel:
template<class T> void Fwd(T & &v) { Call(std::forward<T>(v)); }
std::forward<> Reduziert „& &“ zu „&“ für L-Wert-Referenzen und „& &“ zu „& &“ für R-Wert-Referenzen, sodass Call seine Parameter im entsprechenden Format empfangen kann.
Beziehung mit std: :remove_reference
Dienstprogramme wie std::remove_reference können verwendet werden, um Referenzen aus einer Typableitung zu entfernen (z. B. std::remove_reference
Das obige ist der detaillierte Inhalt vonWie ermöglichen C 11-Referenzkollabierungsregeln eine perfekte Weiterleitung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!