为什么在c ++ 20中不推荐使用std :: filesystem :: u8path?

时间:2019-01-02 09:35:24

标签: c++ c++20

在c ++ 17中引入的std::filesystem::u8path在c ++ 20中似乎已被弃用。

此选择的原因是什么?我应该在c ++ 17中使用什么?我应该在c ++ 20中使用什么?

1 个答案:

答案 0 :(得分:11)

由于C ++ 20功能char8_t的存在,因此可以使用:

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

u8path的存在是为了检测UTF-8字符串和窄字符串之间的差异。但是由于C ++ 20为此会为我们提供实际的 type ,因此不再需要。


  

我应该在c ++ 17中使用什么?

使用u8path。弃用并不表示已删除无法访问。这仅表示可能会被最终删除。

目前,由于u8path(u8"A/UTF8/String")现在正在创建u8字符串,因此在C ++ 20中char8_t将无法在C ++ 20中编译。但是C ++ 20 may be getting a change to u8path that takes char8_t strings