) dans les en-têtes de fonction C ? " />
Comprendre les opérateurs fléchés (->) dans les en-têtes de fonction
Le code en question introduit l'opérateur flèche (->) dans l'en-tête de la fonction :
template <typename T, typename T1> auto compose(T a, T1 b) -> decltype(a + b) { return a+b; }
Cette syntaxe fait référence à la syntaxe alternative de déclaration de fonction introduite en C 11. Elle offre une alternative à la méthode traditionnelle de spécification du type de retour :
return-type identifier (argument-declarations...)
Fonction Syntaxes de déclaration
Les deux syntaxes de déclaration de fonction en C 11 sont :
Syntaxe traditionnelle :
<return-type> <identifier> (<argument-declarations...>)
Syntaxe alternative :
<auto> <identifier> (<argument-declarations...>) -> <return-type>
Détermination du type de retour avec Dectype
La flèche L'opérateur (->) permet de dériver le type de retour en fonction des types d'arguments en utilisant decltype. decltype nous permet de spécifier le type d'une expression sans le déclarer explicitement.
Dans l'exemple donné, decltype(a b) détermine le type de retour en fonction de l'expression a b. L'opérateur - > indique que le type de retour sera le type de l'expression.
Mise à jour C 14
C 14 introduit une autre simplification de la syntaxe :
<auto> <identifier> (<argument-declarations...>)
Ceci est autorisé si la fonction est entièrement définie avant utilisation et que toutes les instructions return sont déduites du même type. Cependant, le - > la syntaxe reste utile pour masquer les corps de fonctions dans les fichiers sources des fonctions publiques déclarées dans les en-têtes.
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!