Почему 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 струны.

Другие вопросы по тегам