Der C 11-Standardbibliothek fehlt eine std::make_unique-Funktionsvorlage, so dass Entwickler zum Erstellen ausführlichen Code schreiben müssen eindeutige Hinweise. Betrachten Sie das folgende Beispiel:
std::unique_ptr<SomeUserDefinedType> p(new SomeUserDefinedType(1, 2, 3));
Um diese Ausführlichkeit zu mildern, haben einige Entwickler eine make_unique-Funktion vorgeschlagen:
auto p = std::make_unique<SomeUserDefinedType>(1, 2, 3);
Diese Syntax verbirgt den neuen Operator und erwähnt den Typ nur einmal.
Die Implementierung einer solchen Funktion erfordert jedoch ein Verständnis der Feinheiten der perfekten Weiterleitung. Insbesondere umfasst der std::forward-Ausdruck:
std::forward<Args>(args)...
die folgenden Operationen:
In Zusammenfassung: std::forward<Args>(args)... ermöglicht die perfekte Weiterleitung von Argumenten an Konstruktoren.
Das obige ist der detaillierte Inhalt vonWarum ist „std::make_unique' trotz seiner Komplexität eine wertvolle Ergänzung zu C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!