为什么 std::filesystem::u8path 在 c++20 中被弃用?

Why is std::filesystem::u8path deprecated in c++20?

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

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

因为,由于 C++20 特性 char8_t 的存在,这将起作用:

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

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


What should I use in c++17?

使用u8path。弃用并不意味着 已删除 无法访问 。它仅意味着 最终 删除。