Heim > Backend-Entwicklung > C++ > Warum verbieten C-Standardcontainer normalerweise unvollständige Typen?

Warum verbieten C-Standardcontainer normalerweise unvollständige Typen?

Susan Sarandon
Freigeben: 2024-12-21 18:26:11
Original
912 Leute haben es durchsucht

Why Do C   Standard Containers Typically Forbid Incomplete Types?

Die Begründung für das Verbot unvollständiger Typen durch C-Container

In der Welt der C-Programmierung sind Container wesentliche Datenstrukturen zum Organisieren und Bearbeiten von Daten. Ein besonderes Merkmal von C-Containern ist jedoch ihre Abneigung gegen unvollständige Typen. Warum ist das so?

Die Antwort liegt in der historischen Entwicklung von C . In der Anfangszeit hatten die Implementierungen der Standard Template Library (STL) Schwierigkeiten, Container mit unvollständigen Typen zu verarbeiten. Um Stabilität und Abwärtskompatibilität zu gewährleisten, hat das Standardisierungskomitee beschlossen, solche Container im C-Standard vollständig zu verbieten.

Diese Einschränkung war besonders wirksam bei der Verhinderung rekursiver Datenstrukturen. Dadurch wurde auch sichergestellt, dass bestehende STL-Implementierungen weiterhin wie vorgesehen funktionieren konnten, ohne dass es zu unvorhergesehenen Problemen kam.

Das Verbot unvollständiger Typen hat jedoch auch einige Kritik hervorgerufen. Es schränkt bestimmte erweiterte Datenstrukturimplementierungen ein und würde von einer erneuten Betrachtung in zukünftigen Revisionen des C-Standards profitieren.

Während die Standardcontainer weiterhin unvollständige Typ-Aversionen aufweisen, haben Bibliotheksdesigner wie diejenigen, die hinter boost::container stehen, dies übernommen Initiative, eigene Container zu erstellen, die diese Einschränkung nicht vorschreiben. Diese Entscheidung ermöglicht eine größere Vielseitigkeit und Flexibilität bei der C-Programmierung.

Aktualisierung:

Mit der Einführung von C 17 wurden bestimmte Container in der Standard-C-Bibliothek geändert Erlauben Sie unvollständige Typen. Dabei handelt es sich jedoch nicht um eine allgemeingültige Änderung, und das allgemeine Verbot bleibt für die meisten Behälter in der Norm bestehen.

Das obige ist der detaillierte Inhalt vonWarum verbieten C-Standardcontainer normalerweise unvollständige Typen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage