He estado jugando con la std::string_viewbiblioteca y he estado pensando en cambiar una base de código en la que he estado trabajando para usar std::string_viewtanto 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_viewlugar 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.