Maison >développement back-end >C++ >Comment puis-je obtenir la longueur d'un tableau C à l'aide d'une fonction de modèle et garantir un résultat d'expression constante ?
Comprendre la fonction du modèle "Taille du tableau"
En programmation, il est souvent nécessaire de récupérer la longueur d'un tableau pour effectuer diverses opérations . La fonction modèle GetArrLength vise à accomplir cette tâche en utilisant une approche concise et efficace.
La définition de la fonction est la suivante :
template<typename T, int size> int GetArrLength(T(&)[size]) { return size; }
Comment ça marche
Pour comprendre le comportement de la fonction, décomposons son structure :
Type de paramètre : T(&&)[size]
Paramètres du modèle : T, taille
Valeur de retour : int
Exemple d'utilisation
Considérez l'extrait de code suivant :
int a[10]; int arraySize = GetArrLength(a);
Dans ce scénario :
Problème d'expression constante
Comme le suggère la question d'origine, la valeur de retour de GetArrLength n'est pas une expression constante. En C , les expressions constantes doivent donner une valeur connue au moment de la compilation. Pour les longueurs de tableau, cela est toujours vrai puisque les tableaux sont alloués de manière statique. Cependant, la fonction d'origine ne fournit pas de moyen de renvoyer ces informations sous forme de constante.
Pour résoudre ce problème, une solution plus avancée est nécessaire, telle que celle fournie dans la section réponse de la question. Cette solution garantit que la fonction renvoie une valeur constante pour la longueur du tableau.
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!