Почему std :: filesystem :: u8path устарела в c ++ 20? - PullRequest
0 голосов
/ 02 января 2019

Введенный в c ++ 17, std::filesystem::u8path кажется устаревшим в c ++ 20.

В чем причина такого выбора?Что я должен использовать в C ++ 17?Что я должен использовать в C ++ 20?

1 Ответ

0 голосов
/ 02 января 2019

Потому что благодаря наличию функции C ++ 20 char8_t это будет работать:

path p(u8"A/utf8/path");

u8path существует, чтобы позволить обнаруживать разницу между строкой UTF-8и узкая строка символов.Но поскольку C ++ 20 даст нам фактический тип для этого, в этом больше нет необходимости.


Что я должен использовать в c ++ 17?

Использование u8path.Устаревание не означает удалено или недоступно .Это просто означает, что возможно возможное удаление .

В настоящее время в C ++ 20 u8path(u8"A/UTF8/String") не удастся скомпилировать в C ++ 20 из-за u8, теперь создающего char8_t строкаНо C ++ 20 может получить изменение на u8path, которое принимает char8_t строк .

...