Heim > Artikel > Backend-Entwicklung > Kann std::string in einem konstanten Ausdruck in C verwendet werden?
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!