Heim > Backend-Entwicklung > C++ > Hauptteil

Wie implementiert man „make_unique' in C 11, wenn Ihr Compiler es nicht unterstützt?

Patricia Arquette
Freigeben: 2024-11-01 10:25:02
Original
658 Leute haben es durchsucht

How to Implement `make_unique` in C  11 When Your Compiler Doesn't Support It?

Neuerstellung der make_unique-Funktion in C 11

Der C 11-Standard führt eine leistungsstarke Funktion, make_unique, zum Erstellen eindeutiger Zeiger ein. Bei einigen kann es jedoch vorkommen, dass ihr Compiler diese Funktion nicht unterstützt. Dieser Artikel bietet eine Problemumgehung zum Implementieren von make_unique in C 11.

Gemäß der Frage lautet der Prototyp der make_unique-Funktion:

<code class="cpp">template< class T, class... Args > unique_ptr<T> make_unique( Args&&&... args );</code>
Nach dem Login kopieren

Der folgende Code stellt eine Implementierung von make_unique bereit:

<code class="cpp">template<typename T, typename... Args>
std::unique_ptr<T> make_unique(Args&&... args)
{
    return std::unique_ptr<T>(new T(std::forward<Args>(args)...));
}</code>
Nach dem Login kopieren

Diese Implementierung verwendet std::forward<> Funktion, um sicherzustellen, dass die Argumentweiterleitung für alle Arten von Argumenten, einschließlich Referenzen und R-Wert-Referenzen, korrekt erfolgt.

Beachten Sie, dass Sie diese Implementierung dennoch als Problemumgehung verwenden können, wenn Ihr Compiler C 11, aber nicht die Funktion make_unique unterstützt. Wenn Sie Zugriff auf einen Compiler haben, der C 14 oder höher unterstützt, können Sie alternativ einfach die Standardfunktion std::make_unique für diesen Zweck nutzen.

Das obige ist der detaillierte Inhalt vonWie implementiert man „make_unique' in C 11, wenn Ihr Compiler es nicht unterstützt?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!