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>
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!