Question : Explorer l'absence de spécialisations de type 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 en 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
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!