Maison > développement back-end > C++ > Les fonctions C peuvent-elles utiliser « auto » comme type d'argument ?

Les fonctions C peuvent-elles utiliser « auto » comme type d'argument ?

DDD
Libérer: 2024-11-17 06:12:03
original
716 Les gens l'ont consulté

Can C   Functions Utilize

Passer Auto comme argument en C

Il existe une méthode pour utiliser le mot-clé "auto" comme argument lors du passage à un autre fonction. C'est-à-dire que vous pouvez définir une fonction comme celle-ci :

int function(auto data)
{
    // Does something
}
Copier après la connexion

Introduction par C 20 de Auto en tant que type de paramètre de fonction

C 20 permet l'utilisation de "auto" comme type de paramètre de fonction. Prenons l'exemple de l'extrait de code suivant :

int function(auto data) {
   // Do something, there are no constraints on data
}
Copier après la connexion

Modèles de fonctions abrégées

De plus, "auto" peut être utilisé comme modèle de fonction abrégé. Il s'agit d'une instance spécialisée d'une contrainte de type non contraignante ou, en d'autres termes, d'un « paramètre automatique sans contrainte ». Un « paramètre automatique contraint », en revanche, emploierait des concepts et apparaîtrait comme suit :

void function(const Sortable auto& data) {
    // Do something that requires data to be Sortable
    // Assuming there is a concept named Sortable
}
Copier après la connexion

Explication de la spécification C

La spécification C définit "spécificateurs de type d'espace réservé" comme suit :

type-constraint<sub>opt</sub> auto

type-constraint<sub>opt</sub> decltype ( auto )
Copier après la connexion

Ces spécificateurs de type d'espace réservé désignent un type d'espace réservé qui est soumis au remplacement ultérieur par déduction d'un initialiseur. Lorsqu'il est utilisé dans le "decl-specifier-seq" d'une déclaration de fonction ou d'une expression lambda, un spécificateur de type d'espace réservé de la forme "type-constraintopt auto" indique que la fonction est un modèle de fonction abrégé (selon 9.3.3.5).

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal