Ho giocato con la std::string_view
libreria e ho pensato di cambiare una base di codice su cui ho lavorato per utilizzare std::string_view
il più possibile. Tuttavia, in molti dei thread che ho letto sull'argomento di quando e dove utilizzare std::string_view
anziché const std::string &
. Ho visto molte risposte dire: "Quando non hai bisogno di una stringa terminata nulla". Così, quando ho iniziato a cercare sul Web per "quando hai bisogno di una stringa con terminazione null?" Non ho mai trovato risposte utili sull'argomento.
Mi viene in mente un esempio di una libreria esterna a cui collegherai che richiede un std::string
. E in quel caso avresti bisogno di una stringa terminata nulla poiché quella libreria lo richiede. Immagino che un altro esempio potrebbe essere se è necessario modificare la stringa stessa, ma non la passeremmo se const &
fosse necessario modificarla.
Quindi quando dovresti usare una stringa terminata null?
Link che ho visto:
const char*
argomento. la risposta di eerorika ha un esempio.