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

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

Linda Hamilton
Freigeben: 2024-11-23 16:43:22
Original
246 Leute haben es durchsucht

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();
Nach dem Login kopieren

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";
Nach dem Login kopieren

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!

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