boost::filesystem::path与boost::filesystem::wpath的区别

5
Boost库有一个处理文件路径的类:boost::filesystem::path。此外,Boost还有这个类:boost::filesystem::wpath
每个类都有方法:string()wstring()c_str()native()
我开发Windows应用程序,完全不知道该使用哪个))。
从实际角度来看,这两个类有什么区别?这些方法之间有什么区别?
对于Windows应用程序,应该使用哪个类和哪些方法?在所有地方都使用::wpathwstring()吗?
部分源代码(几个静态链接库)将编译为Ubuntu。在这种情况下,::wpath仍然适用吗?
我将使用 SQLite,并且需要数据库文件的路径。 sqlite3_open。 我应该使用 sqlite3_open_v2(文件路径采用 UTF-8 编码)还是sqlite3_open16(文件路径采用 UTF-16 编码)?

顺便说一句,在阅读这篇文章之后,链接似乎::path::wpath没有任何区别。是这样的吗?

native()方法似乎更适用于为不同平台编译的源代码。

1个回答

5
从实际角度来看,这两个类有什么区别?这些方法之间有什么区别?
在Windows应用程序中应该使用哪个类和哪些方法?是否应该到处使用::wpath和wstring()?
值得一提的是,Boost已经弃用了wpath,应该使用class path。请参见Boost Deprecated Features (current release) 在底层,Boost使用std::string和std::wstring表示路径和wpath,其中wstring用于表示宽字符字符串,即支持更大的字符集。
关于大多数问题,可以在此找到答案:std::wstring VS std::string native()方法似乎更适合为不同平台编译的源代码。

没错。如果你正在开发一个纯Windows应用程序,那么可以使用wstring()而不是native()


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接