Nasz zespół pracuje z ponad 10-letnią bazą kodu C ++, a ostatnio przeszedł na kompilator C ++ 17. Szukamy więc sposobów modernizacji naszego kodu. Podczas konferencji na YouTube usłyszałem sugestię zastąpienia const char*
globalnych ciągów constexpr string_view
.
Ponieważ const char*
w naszym kodzie mamy całkiem sporo takich globalnych stałych ciągów, chcę zapytać, czy są jakieś problemy lub potencjalne problemy, o których musimy wiedzieć?
źródło
std::string(sv).c_str()
zamiast tego przejść do API?someLegacyFct(std::string(sv).c_str())
i ten backend jakoś przechowuje wskaźnik ...const char*
konstruktorem. Tak wyraźna konstrukcjastd::string
zstring_view
byłaby w naszym przypadku po prostu spójna.