Maison >développement back-end >C++ >Pourquoi n'y a-t-il pas d'équivalent non atomique de std::shared_ptr dans la bibliothèque standard C ?
Examen des arguments en faveur d'un équivalent non atomique de std::shared_ptr
Introduction
Les pointeurs intelligents en C 11 offrent un mécanisme puissant pour la gestion de la mémoire, std::shared_ptr étant le principal choix pour la propriété partagée. Cependant, sa nature atomique introduit une surcharge qui peut s’avérer inutile ou indésirable dans certains scénarios. Cet article explore l'absence d'un équivalent non atomique de std::shared_ptr dans la bibliothèque standard et examine les raisons potentielles derrière cette décision.
La recherche d'une alternative non atomique
Contrairement à la prémisse de la question, std::shared_ptr n'est pas le seul pointeur intelligent dans
Raisons de l'exclusion
Malgré les avantages potentiels d'une alternative non-atomique shared_ptr atomic shared_ptr, le comité des normes C a choisi de ne pas en inclure un dans C 11. La décision découle d'un débat houleux lors de la réunion de Rapperswil en 2010. Les arguments contre son inclusion comprenaient :
Conclusion
L'absence d'équivalent non atomique de std::shared_ptr dans la norme C 11 a de multiples facettes. Bien qu'il compromette le principe « payez pour ce que vous utilisez », il donne la priorité à la cohérence, à l'évitement des erreurs et à une surcharge minimale en termes de performances. La décision reflète un compromis entre offrir une flexibilité optimale et garantir la robustesse du code.
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!