Optional in C: Warum keine Spezialisierung für Referenztypen?
Trotz der Spezialisierung für Referenztypen in Bibliotheken wie Boost, dem C std::optional der Standardbibliothek bietet eine solche Funktion nicht. Diese Entscheidung hat Fragen zu ihrer Begründung und möglichen alternativen Mechanismen ausgelöst.
Begründung hinter der Unterlassung
Während der Diskussion über n3406 (der Vorschlag für optional) wurden Bedenken geäußert bezüglich der Aufnahme optionaler Referenzen. Die Autoren von n3527 erkannten diese Einwände und trennten optionale Referenzen in einen Hilfsvorschlag, um die Wahrscheinlichkeit der Akzeptanz für standardmäßige optionale Werte zu erhöhen. Auch wenn „fakultativ“ letztendlich aufgrund nicht zusammenhängender Faktoren nicht in C 14 aufgenommen wurde, stellte die Ablehnung optionaler Verweise durch das Komitee kein Problem dar.
Aktuelle Alternativen
Obwohl std::optional keine Spezialisierung für Referenztypen bietet, fehlt der Standardbibliothek ein äquivalentes Konstrukt, das die Semantik „Referenz auf möglicherweise vorhandenes Objekt“ bereitstellt. Dies kann dazu führen, dass Entwickler nach Alternativen suchen:
Zukünftige Überlegungen
Während optionale Referenzen derzeit in der fehlen C-Standardbibliothek hat das Komitee ihre zukünftige Aufnahme nicht ausgeschlossen. Sollte ein formeller Vorschlag eingereicht werden, hängt die Entscheidung letztendlich von der Bewertung der Vorzüge der vorgeschlagenen Funktion durch den Ausschuss ab.
Das obige ist der detaillierte Inhalt vonHier sind einige fragenbasierte Titeloptionen, die sich auf das Kernthema konzentrieren: * C std::optional: Warum keine Spezialisierung für Referenztypen? (Direkt und auf den Punkt) * Referenztypen in C std::option. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!