Maison > Article > développement back-end > Pourquoi la norme C n'inclut-elle pas un « std::shared_ptr » non atomique ?
Pointeurs intelligents non atomiques : exploration de l'absence dans le standard C
Dans le domaine de la gestion de la mémoire C, le std::shared_ptr se présente comme un pointeur intelligent exceptionnel en raison de ses opérations atomiques. Cela soulève la question : pourquoi n'y a-t-il pas d'équivalent non atomique dans la bibliothèque de mémoire standard ?
1. Alternatives non atomiques à std::shared_ptr
Bien que std::shared_ptr offre un comportement atomique, certains scénarios peuvent ne pas justifier une telle surcharge. Pour résoudre ce problème, des bibliothèques externes ont vu le jour, fournissant des pointeurs intelligents non atomiques à comptage de références. Cependant, la bibliothèque de mémoire standard elle-même ne dispose pas de telles offres.
2. L'absence dans C 11 : raisons et débat
Malgré l'utilité perçue, une proposition de version non atomique de std::shared_ptr a été rejetée lors du processus de standardisation du C 11. Plusieurs arguments ont alimenté cette décision :
Conclusion
L'absence d'un std::shared_ptr non atomique dans la norme C est le résultat d'une décision délibérée basée sur des préoccupations concernant une utilisation abusive potentielle, la cohérence, les performances et la flexibilité de personnalisation. Bien que les bibliothèques externes puissent fournir de telles alternatives, la norme elle-même a donné la priorité aux avantages d'un pointeur intelligent atomique universel pour la gestion de la mémoire.
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!