Maison  >  Article  >  développement back-end  >  Quel est le but de l’opérateur flèche (->) dans les en-têtes de fonction C ?

Quel est le but de l’opérateur flèche (->) dans les en-têtes de fonction C ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-13 05:49:02286parcourir

What is the Purpose of the Arrow Operator (->) dans les en-têtes de fonction C ? 
) 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 :

  1. Syntaxe traditionnelle :

    <return-type> <identifier> (<argument-declarations...>)
  2. 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn