Heim >Backend-Entwicklung >C++ >Warum fehlen „std::optional' Referenztypspezialisierungen?
Frage: Untersuchung des Fehlens von Referenztypspezialisierungen in std::optional
In Standard C stellt std::optional einen Container bereit einen Wert halten oder dessen Abwesenheit anzeigen. Im Gegensatz zu seinem Gegenstück in Boost mangelt es std::optional jedoch an Spezialisierungen für Referenztypen, sodass Benutzer sich fragen müssen: Warum? In diesem Artikel werden die Gründe für diese Entwurfsentscheidung untersucht und alternative Optionen untersucht, die in der Standardbibliothek verfügbar sind, um Verweise auf optionale Werte zu verarbeiten.
Antwort: Bedenken und Zukunftsaussichten ansprechen
Während des ersten Vorschlags (n3406) für optionale Werte äußerten Ausschussmitglieder Bedenken hinsichtlich optionaler Referenzen. Anschließend schlugen die Autoren in n3527 vor, optionale Verweise in einen Hilfsvorschlag aufzuteilen, um die Chancen der Übernahme optionaler Werte zu erhöhen.
Obwohl optionale Verweise aufgrund anderer Faktoren nicht in C 14 aufgenommen wurden, wurden sie von nicht abgelehnt das Komitee. Dies lässt die Möglichkeit offen, optionale Referenzen in einen zukünftigen C-Standard aufzunehmen, falls ein Vorschlag eingereicht wird.
Alternativen für die Referenzierung optionaler Werte
Trotz des Fehlens von std:: optionale Spezialisierung für Referenztypen bietet die Standardbibliothek eine Alternative zum Referenzieren optionaler Werte:
Zusammenfassend lässt sich sagen, dass es an Referenztypspezialisierungen mangelt std::optional entstand aus Bedenken während des Vorschlagsprozesses. Der Ausschuss ist jedoch weiterhin offen für die Prüfung optionaler Referenzen in der Zukunft. Darüber hinaus stellt die Standardbibliothek std::reference_wrapper
Das obige ist der detaillierte Inhalt vonWarum fehlen „std::optional' Referenztypspezialisierungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!