在c ++ 17中引入的std::filesystem::u8path
在c ++ 20中似乎已被弃用。
此选择的原因是什么?我应该在c ++ 17中使用什么?我应该在c ++ 20中使用什么?
答案 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。