Maison > développement back-end > C++ > le corps du texte

Pourquoi \'Foo me;\' ne fonctionne-t-il pas avec les arguments de modèle par défaut dans C 11 ?

Barbara Streisand
Libérer: 2024-11-04 14:02:02
original
307 Les gens l'ont consulté

Why Does

Surmonter la spécification d'arguments explicites pour les modèles de classe avec des arguments de modèle par défaut

C 11 a introduit les arguments de modèle par défaut, un concept qui a initialement suscité la confusion. Cet article approfondit ce sujet et explique pourquoi une instance d'un modèle de classe avec des arguments de modèle par défaut, tels que "Foo me ;", n'est pas valide dans main.

Considérez le modèle de classe suivant avec un argument de modèle par défaut de int :

template <typename T = int>
class Foo {};
Copier après la connexion

Malgré la présence de l'argument de modèle par défaut, le code "Foo me;" dans main entraîne une erreur de compilation. En effet, des crochets angulaires vides, comme dans "Foo<> me;", sont nécessaires pour spécifier explicitement l'argument du modèle par défaut.

La raison derrière cette exigence est la nécessité d'une syntaxe cohérente avec les appels de fonction. En C , une fonction avec un argument par défaut nécessite que la syntaxe de l'argument soit présente, même si la valeur par défaut est utilisée. Cette règle s'étend aux modèles de classe avec des arguments de modèle par défaut, garantissant la cohérence de la syntaxe du langage.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!