Maison > développement back-end > C++ > Pourquoi les conteneurs C ne peuvent-ils pas contenir de types incomplets ?

Pourquoi les conteneurs C ne peuvent-ils pas contenir de types incomplets ?

Linda Hamilton
Libérer: 2024-12-04 07:26:10
original
207 Les gens l'ont consulté

Why Can't C   Containers Hold Incomplete Types?

Pourquoi les types incomplets sont interdits dans les conteneurs C

Question :

Pourquoi le C la norme interdit aux conteneurs de types incomplets d'être instancié ?

Réponse :

La décision du comité de normalisation C à cet égard découlait de raisons historiques.

Les tests initiaux ont révélé que même de simples exemples de conteneurs avec des types incomplets ne fonctionnaient pas de manière cohérente dans toutes les implémentations STL. Ce manque de clarté a conduit le comité à déclarer que le fonctionnement des conteneurs STL avec des types incomplets était un comportement indéfini, étendant cette interdiction au reste de la bibliothèque standard.

Cette décision a été prise pour éviter d'invalider les implémentations de bibliothèques existantes qui le faisaient. ne prend pas en charge les types incomplets de manière rétroactive.

Malgré l'interdiction initiale, Matt Austern, président du groupe de travail sur la bibliothèque du comité, a reconnu la possibilité d'assouplir cette restriction dans le futur C révisions.

Bien que l'interdiction soit toujours en vigueur dans la norme actuelle, boost::container démontre la faisabilité des conteneurs qui autorisent les types incomplets, offrant une solution pour les situations où cela est souhaité.

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