Question : Explorer l'absence de spécialisations de type de référence dans std::optional
En standard C , std::optional fournit un conteneur pour détenir une valeur ou indiquer son absence. Cependant, contrairement à son homologue de Boost, std::optional manque de spécialisations pour les types de référence, laissant les utilisateurs avec une question : pourquoi ? Cet article examine les raisons de cette décision de conception et explore les options alternatives disponibles dans la bibliothèque standard pour gérer les références aux valeurs facultatives.
Réponse : répondre aux préoccupations et aux perspectives d'avenir
Lors de la proposition initiale (n3406) de valeurs facultatives, des préoccupations ont été soulevées par les membres du comité concernant les références facultatives. Par la suite, dans le n3527, les auteurs ont proposé de séparer les références facultatives dans une proposition auxiliaire pour améliorer les chances d'adoption des valeurs facultatives.
Bien que les références facultatives n'aient pas été incluses dans C 14 en raison d'autres facteurs, elles n'ont pas été rejetées par le comité. Cela laisse ouverte la possibilité d'incorporer des références facultatives dans une future norme C si une proposition est soumise.
Alternatives pour référencer les valeurs facultatives
Malgré l'absence de std : spécialisation facultative pour les types de référence, la bibliothèque standard fournit une alternative pour référencer les valeurs facultatives :
En conclusion, le manque de spécialisations de type référence dans std::facultatif découle de préoccupations lors du processus de proposition. Cependant, le comité reste ouvert à l’idée de références facultatives à l’avenir. De plus, la bibliothèque standard fournit std::reference_wrapper<:optional>> comme alternative pour référencer des valeurs facultatives entre-temps.
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