Heim  >  Artikel  >  Backend-Entwicklung  >  Warum unterstützt „std::optional“ keine Referenztypen?

Warum unterstützt „std::optional“ keine Referenztypen?

Susan Sarandon
Susan SarandonOriginal
2024-10-26 18:40:30175Durchsuche

Why Doesn't `std::optional` Support Reference Types?

Optionale Referenzen: Abwesenheit in std::optional

Im Gegensatz zur optionalen Klasse von Boost, die Referenztypen unterstützt, ist std::optional der Standardbibliothek fehlt diese Funktionalität. Dieses Versäumnis hat zu Nachforschungen über die Gründe für diese Entscheidung geführt.

Mangelnde Spezialisierung

Als std::optional ursprünglich als std::experimental::optional vorgeschlagen wurde libc äußerten die Ausschussmitglieder Bedenken hinsichtlich optionaler Referenzen. Anschließend entschieden sich die Autoren in der dritten Überarbeitung des Vorschlags (n3527), optionale Verweise zu einem Hilfsvorschlag zu machen, um die Wahrscheinlichkeit zu erhöhen, dass optionale Werte genehmigt und in C 14 integriert werden.

Zukunftsaussichten

Obwohl optionale Referenzen aus anderen Gründen nicht in C 14 aufgenommen wurden, lehnte das Komitee sie nicht direkt ab. Sie bleiben offen für die Möglichkeit, optionale Verweise in zukünftige C-Standards aufzunehmen, wenn ein formeller Vorschlag vorgelegt wird.

Alternative Lösungen

In der Zwischenzeit können Entwickler alternative Lösungen in Betracht ziehen wie zum Beispiel benutzerdefinierte Objekt-Wrapper oder die Verwendung der boost::optional-Bibliothek, die die Funktionalität für Referenztypen bereitstellt.

Das obige ist der detaillierte Inhalt vonWarum unterstützt „std::optional“ keine Referenztypen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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