He estado jugando con la std::string_view
biblioteca y he estado pensando en cambiar una base de código en la que he estado trabajando para usar std::string_view
tanto como sea posible. Sin embargo, en muchos de los hilos que he leído sobre el tema de cuándo y dónde usar en std::string_view
lugar de const std::string &
. He visto muchas respuestas que dicen: "Cuando no necesita una cadena terminada en nulo". Entonces, cuando comencé a buscar en la web, "¿cuándo necesita una cadena terminada en nulo?" Realmente no he encontrado ninguna respuesta útil sobre el tema.
Se me ocurre un ejemplo de una biblioteca externa a la que vinculará que requiere a std::string
. Y en ese caso, necesitaría una cadena terminada en nulo ya que esa biblioteca lo requiere. Supongo que otro ejemplo sería si necesita modificar la cadena en sí, pero luego no la pasaríamos const &
si necesitáramos modificarla.
Entonces, ¿cuándo necesitaría usar una cadena terminada en nulo?
Enlaces que he mirado:
const char*
argumento. La respuesta de eerorika tiene un ejemplo.