【问题标题】:boost::filesystem::path vs boost::filesystem::wpathboost::filesystem::path 与 boost::filesystem::wpath
【发布时间】:2016-06-02 05:23:44
【问题描述】:

Boost lib 有一个类来处理文件路径:boost::filesystem::path。 Boos也有这个类boost::filesystem::wpath

每个类都有方法string()、wstring()、c_str()、native()

我开发 Windows 应用程序,我完全不明白我应该使用什么 ))

从实践的角度来看,这两个类有什么区别?这些方法有什么区别?

我应该为 Windows 应用程序使用什么类和方法? ::wpath 和 wstring() 无处不在?

将为 Ubuntu 编译部分源代码(几个静态链接的库)。这种情况下::wpath还好吗?


我也使用SQLite,它需要数据库文件的路径。 sqlite3_open.

我应该使用sqlite3_open_v2(文件路径的UTF-8编码)或sqlite3_open16(文件路径的UTF-16编码)?


附:看了这篇文章link 似乎::path 和::wpath 根本没有区别。对吗?

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

【问题讨论】:

    标签: c++ boost encoding path


    【解决方案1】:

    从实践的角度来看,这两个类有什么区别?这些方法有什么区别?

    我应该为 Windows 应用程序使用什么类和方法? ::wpath 和 wstring() 无处不在?

    值得一提的是,对于现在的几个版本,Boost 已弃用 wpath,而应使用 class path。见Boost Deprecated Features (current release)

    “幕后”,Boost 使用std::string 和std::wstring 表示path 和wpath,其中wstring 用于表示宽字符串,即支持更大的字符集。

    这些问题大部分都在这里得到解答:std::wstring VS std::string

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

    没错。如果它只是您正在开发的 Windows 应用程序,那么 wstring() 可以在 native() 上使用

    【讨论】:

      猜你喜欢
      • 2012-07-06
      • 2011-01-24
      • 2011-04-23
      • 2018-02-18
      • 1970-01-01
      • 1970-01-01
      • 2011-12-19
      • 1970-01-01
      • 2012-01-23
      相关资源
      最近更新 更多