Unser Team arbeitet mit einer über 10 Jahre alten C ++ - Codebasis und hat kürzlich auf einen C ++ 17-Compiler umgestellt. Deshalb suchen wir nach Möglichkeiten, unseren Code zu modernisieren. In einem Konferenzgespräch auf YouTube hörte ich den Vorschlag, const char*
globale Zeichenfolgen durch zu ersetzen constexpr string_view
.
Da wir eine ganze Reihe solcher const char*
globalen Zeichenfolgenkonstanten in unserem Code haben, möchte ich fragen, ob es Fallstricke oder potenzielle Probleme gibt, die wir beachten müssen.
quelle
std::string(sv).c_str()
stattdessen für die Übergabe an API tun ?someLegacyFct(std::string(sv).c_str())
und dieses Backend irgendwie den Zeiger speichert ...const char*
Konstruktor. Eine explizite Konstruktion vonstd::string
fromstring_view
wäre also in unserem Fall nur konsistent.