Maison > développement back-end > C++ > Comment implémenter la fonction make_unique en C 11 ?

Comment implémenter la fonction make_unique en C 11 ?

DDD
Libérer: 2024-10-30 13:26:02
original
707 Les gens l'ont consulté

How to Implement the make_unique Function in C  11?

Implémentation de la fonction make_unique en C 11

Malgré son omission chez certains compilateurs, la fonction make_unique reste un outil indispensable pour gérer la mémoire. Voici comment répliquer sa fonctionnalité en 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>
Copier après la connexion

Cette implémentation utilise std::forward pour assurer une transmission parfaite des arguments au constructeur de l'objet géré par le pointeur unique.

Pour les compilateurs qui ne prennent pas en charge make_unique, tels que VC2012, cette implémentation personnalisée constitue une alternative efficace. Cependant, si votre compilateur prend en charge la réponse fournie par sasha.sochka, cette solution est plus robuste et gère également les tableaux.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal