Maison > développement back-end > C++ > Pourquoi GCC ne parvient-il pas à compiler une spécialisation explicite dans une portée autre que l'espace de noms ?

Pourquoi GCC ne parvient-il pas à compiler une spécialisation explicite dans une portée autre que l'espace de noms ?

Susan Sarandon
Libérer: 2024-11-16 05:40:03
original
229 Les gens l'ont consulté

Why Does GCC Fail to Compile Explicit Specialization in Non-Namespace Scope?

Spécialisation explicite dans la portée non-espace de noms

Le code donné ne parvient pas à se compiler dans GCC malgré une compilation réussie dans Clang. Selon le standard C ([temp.expl.spec]), des spécialisations explicites peuvent être déclarées dans n'importe quelle portée où le modèle principal correspondant pourrait être défini.

Ce comportement semble être un bug dans GCC. Selon CWG 727, la règle de [temp.expl.spec] concernant la spécialisation explicite a été modifiée pour permettre de telles déclarations dans n'importe quelle portée pertinente.

Portée de la spécialisation explicite

La norme d'origine stipulait que la spécialisation explicite devait être déclarée dans un espace de noms entourant le modèle spécialisé. Cependant, la norme actuelle autorise une spécialisation explicite dans n'importe quelle portée où le modèle principal peut être défini :

  • Définitions de classe (12.2)
  • Fonctions membres (17.6.2)
  • Espaces de noms en ligne (10.3.1.2)

Le non-respect par GCC de cette règle mise à jour constitue un bug. Le problème a été identifié comme étant le bogue 85282 et est actuellement suivi par l'équipe de développement de GCC.

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