Преобразование string_view в строку c с нулевым завершением

Как бы вы преобразовали std::string_view в строку c с завершающим нулем? Я передал string_view в функцию, и мне нужно передать его в другую функцию, которая принимает параметр const char*. Однако, глядя на эту документацию для string_view, там говорится

data() может возвращать указатель на буфер, который не завершается нулем. Поэтому, как правило, ошибочно передавать data() подпрограмме, которая принимает только const CharT* и ожидает строку с завершающим нулем.

Есть ли способ правильно получить строку c с нулевым завершением из string_view?


person Jeffmagma    schedule 07.01.2018    source источник
comment
Именно это побудило некоторых людей создать отдельный класс zstring_view. Если строковое представление не ссылается на строку с завершающим нулем, любой метод ее создания будет относительно дорогим.   -  person chris    schedule 07.01.2018
comment
Вы можете попробовать: строка (stringViewObject).c_str()   -  person Daniel Illescas    schedule 07.01.2018
comment
я должен просто начать с параметра const string& вместо этого? Если я все равно буду строить строку? Я знаю, что всегда буду передавать этой функции std::string или строковый литерал   -  person Jeffmagma    schedule 07.01.2018
comment
@Jeffmagma: Есть ли способ правильно получить строку c с завершающим нулем из string_view? Если бы ответ на этот вопрос был утвердительным, string_view::substr не смог бы вернуть string_view.   -  person Nicol Bolas    schedule 07.01.2018