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 préoccupations 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 optionnel n'ait finalement pas été inclus 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.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3