Можно ли использовать std :: ifstream и std :: ofstream с аргументом файла std :: string_view?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Можно ли использовать std :: ifstream и std :: ofstream с аргументом файла std :: string_view?

Сообщение Anonymous »

Я был удивлен, обнаружив, что следующий код не компилируется: < /p>

Код: Выделить всё

auto example_function(std::string_view filename) {

std::fstream ofile(filename, std::ios_base::out | std::ios_base::binary);

std::fstream ifile(filename, std::ios_base::in | std::ios_base::binary);
}
< /code>
Обе эти строки создают аналогичные ошибки: < /p>
error: no matching function for call to ‘std::basic_fstream::basic_fstream(std::string_view&, std::_Ios_Openmode)’
error: ‘class std::basic_string_view’ has no member named ‘make_preferred’
= decltype(std::declval().make_preferred().filename())>

error: no matching function for call to ‘std::basic_fstream::basic_fstream(std::string_view&, std::_Ios_Openmode)’
error: ‘class std::basic_string_view’ has no member named ‘make_preferred’
= decltype(std::declval().make_preferred().filename())>
Параметры конструктора включают аргументы типа const char* и std :: string & .
Я был удивлен Не находить вариант включает в себя std :: string_view . Есть ли какая -то очевидная причина, почему это не было включено? Преобразование из std :: string_view для const char* может быть не особенно безопасным, поскольку std :: string_view не может быть завершено в конце его .size ()

Подробнее здесь: https://stackoverflow.com/questions/794 ... lename-arg
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»