En C , le placement de la référence const dans les arguments de fonction peut soulever des questions. Considérez les deux extraits de code suivants :
int foo1(const Fred &arg) { ... }
int foo2(Fred const &arg) { ... }
Sémantiquement, il n'y a aucune différence entre ces deux arguments. Le langage les traite comme le même type, tous deux faisant référence à une référence constante à un objet de type Fred.
Considérations stylistiques :
Cependant, en ce qui concerne le style , l'utilisation préférée varie selon les programmeurs.
Analyse de droite à gauche :
Selon la règle d'analyse de droite à gauche, les qualificatifs (tels que const) doivent être appliqués au type à leur gauche. Cela prendrait en charge l'utilisation de T const&.
Cependant, il est important de noter que const T& peut également être analysé efficacement de droite à gauche. Il indique une référence à une valeur constante de type T. De plus, l'ambiguïté de T const* (qui pourrait potentiellement être interprétée comme « pointeur constant vers T » au lieu de « pointeur vers constante T ») fait de const T& le choix le plus sans ambiguïté.
Pratique :
En termes de lisibilité et d'usage courant, const T&/const T ont pris un élan significatif par rapport à T const&/T const. Cela peut être dû à la prédominance de ces styles dans des sources largement reconnues comme le livre de Stroustrup et le standard C. Le respect des pratiques communément acceptées peut améliorer la lisibilité 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!