Heim > Artikel > Backend-Entwicklung > Wie implementiert man die Funktion make_unique in C 11?
Implementierung der make_unique-Funktion in C 11
Obwohl sie in bestimmten Compilern weggelassen wird, bleibt die make_unique-Funktion ein wichtiges Werkzeug für die Speicherverwaltung. So replizieren Sie seine Funktionalität in C 11:
<code class="cpp">template<typename T, typename... Args> std::unique_ptr<T> make_unique(Args&&... args) { // Allocate the object on the heap with the provided arguments return std::unique_ptr<T>(new T(std::forward<Args>(args)...)); }</code>
Diese Implementierung verwendet std::forward, um eine perfekte Weiterleitung der Argumente an den Konstruktor des Objekts sicherzustellen, das vom eindeutigen Zeiger verwaltet wird.
Für Compiler, denen make_unique-Unterstützung fehlt, wie z. B. VC2012, bietet diese benutzerdefinierte Implementierung eine effektive Alternative. Wenn Ihr Compiler jedoch die von sasha.sochka bereitgestellte Antwort unterstützt, ist diese Lösung robuster und verarbeitet auch Arrays.
Das obige ist der detaillierte Inhalt vonWie implementiert man die Funktion make_unique in C 11?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!