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

Quelles sont les restrictions sur la spécialisation des modèles dans l'espace de noms std ?

Susan Sarandon
Libérer: 2024-10-30 18:59:30
original
285 Les gens l'ont consulté

 What are the Restrictions on Specializing Templates within the std Namespace?

Restrictions de spécialisation dans l'espace de noms std

L'espace de noms std permet une spécialisation explicite de ses modèles, mais des limitations spécifiques existent.

Modèles interdits de spécialisation :

Selon au standard C, les modèles suivants ne peuvent pas être spécialisés dans l'espace de noms std :

  • numeric_limits pour les types non arithmétiques (par exemple, complexe) : Seuls les types arithmétiques peuvent être spécialisé.
  • shared_ptr et faible_ptr : Doit répondre à des exigences spécifiques en matière de copiabilité, d'assignabilité et de comparaisons.
  • hash : Les spécialisations doivent être conformes aux exigences du modèle de classe de hachage standard.
  • Traits de type () : Le comportement de spécialisation n'est pas défini, sauf autorisation explicite (par exemple, seules certaines spécialisations common_type sont autorisées).
  • Locales : Avoir les spécialisations requises.
  • istreambuf_iterator : Exiger un constructeur de copie trivial, par défaut constructeur et destructeur.
  • complexe pour types à virgule non flottante : Définir des spécialisations pour d'autres types est considéré comme inutile.
  • atomique : Doit avoir supprimé les opérations de copie et un constructeur de valeur constexpr.
  • fonction_unaire et fonction_binaire : Les spécialisations sont obsolètes et interdite.

Restrictions générales :

  • Toute spécialisation ne doit pas entrer en conflit avec les exigences du modèle d'origine.
  • Spécialisations et instanciations explicites des modèles de bibliothèque standard sont interdits sauf indication contraire explicite.
  • Spécialisations explicites des fonctions membres, des modèles de fonction ou les modèles de classes membres des classes de bibliothèque standard ont un comportement indéfini.

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!