Почему std::filesystem::u8path устарела в C++20?
Введенный в C++17, std::filesystem::u8path
кажется, устарела в C++20.
В чем причина этого выбора? Что я должен использовать в C++17? Что я должен использовать в C++20?
1 ответ
Потому что благодаря существованию 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
струны.