Heim  >  Artikel  >  Backend-Entwicklung  >  Kann std::string in einem konstanten Ausdruck in C verwendet werden?

Kann std::string in einem konstanten Ausdruck in C verwendet werden?

Linda Hamilton
Linda HamiltonOriginal
2024-11-23 16:43:22184Durchsuche

Can std::string Be Used in a Constant Expression in C  ?

Kann std::string in einem konstanten Ausdruck verkörpert werden?

In C 11 stellt die Verwendung von std::string innerhalb eines konstanten Ausdrucks eine Rolle Herausforderungen. C 20 bietet jedoch eine Lösung, allerdings mit der Einschränkung, dass der std::string zerstört werden muss, bevor die ständige Auswertung abgeschlossen ist.

C 20-Lösung:

Während der Wenn der von Ihnen bereitgestellte Codeausschnitt nicht kompiliert wird, wird der folgende Code ausgeführt:

constexpr std::size_t n = std::string("hello, world").size();

C 17 Alternative: string_view

Als Alternative führt C 17 string_view ein, ein leichtes stringähnliches Objekt, das als nicht besitzende Referenz auf eine Folge von char-Objekten dient. Im Gegensatz zu std::string ist string_view unveränderlich und erfordert keine Zerstörung. Dies macht es ideal für die Verwendung in konstanten Ausdrücken:

constexpr std::string_view sv = "hello, world";

Das obige ist der detaillierte Inhalt vonKann std::string in einem konstanten Ausdruck in C verwendet werden?. 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