在c ++ 17中引入,std::filesystem::u8path
似乎在c ++ 20中被弃用了.
这个选择的原因是什么?我应该在c ++ 17中使用什么?我应该在c ++ 20中使用什么?
Nic*_*las 14
因为存在char8_t
,这将起作用:
path p(u8"A/utf8/path");
Run Code Online (Sandbox Code Playgroud)
u8path
存在以允许检测UTF-8字符串和窄字符串之间的差异.但是,由于C++ 20将为我们提供实际类型,因此不再需要它.
我应该在c ++ 17中使用什么?
使用u8path
.弃用并不意味着被删除或无法访问.它仅仅意味着最终被删除.
目前,u8path(u8"A/UTF8/String")
由于u8
现在创建了一个char8_t
字符串,在C++ 20 中将无法在C++ 20中编译.但是,C++ 20 可以得到一个改变u8path
是需要char8_t
的字符串.