Facultatif en C : Pourquoi pas de spécialisation pour les types référence ?
Malgré la présence de spécialisation pour les types référence dans les bibliothèques comme Boost, le C std::optional de la bibliothèque standard ne fournit pas une telle fonctionnalité. Cette décision a suscité des interrogations sur sa justification et ses mécanismes alternatifs potentiels.
Raison d'être de l'omission
Au cours de la discussion sur le n3406 (la proposition facultative), des inquiétudes ont été soulevées. concernant l’inclusion de références facultatives. Reconnaissant ces objections, les auteurs du n3527 ont séparé les références facultatives en une proposition auxiliaire pour améliorer la probabilité d'acceptation des valeurs facultatives standard. Bien que les références facultatives n'aient finalement pas été incluses dans le C 14 en raison de facteurs non liés, la désapprobation du comité des références facultatives n'était pas un problème.
Alternatives actuelles
Bien que std::optional n'offre pas de spécialisation pour les types de référence, la bibliothèque standard ne dispose pas d'une construction équivalente fournissant la sémantique de « référence à un objet éventuellement existant ». Cela peut inciter les développeurs à rechercher des alternatives :
Considérations futures
Bien que les références facultatives soient actuellement absentes du Bibliothèque standard C, le comité n’a pas exclu leur inclusion future. Si une proposition formelle est soumise, la décision reposera en fin de compte sur l'évaluation par le comité des mérites de la fonctionnalité proposée.
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!