boost :: filesystem :: path vs boost :: filesystem :: wpath

时间:2016-02-20 16:06:09

标签: c++ boost encoding path

Boost lib有一个类来处理文件路径:xcross_0914_Hands_X.mat 。 此外,Boos还有此课程boost::filesystem::path

每个班级都有方法boost::filesystem::wpathstring()wstring()c_str()

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

从实际角度来看,这两个班级有什么区别?这些方法有什么区别?

我应该为Windows应用使用哪些类和哪些方法?无处不在native()::wpath

将为Ubuntu编译部分源代码(几个静态链接的库)。在这种情况下wstring()仍然很好吗?

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

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

P.S。阅读完本文link后,sqlite3_open16::path似乎没有任何区别。是不是?

方法::wpath似乎更适合为不同平台编译的源代码。

1 个答案:

答案 0 :(得分:5)

  

从实际角度来看,这两个班级有什么区别?这些方法有什么区别?

     

我应该为Windows应用使用哪些类和哪些方法? :: wpath和wstring()无处不在?

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

"引擎盖",Boost代表pathwpath使用std::stringstd::wstring,其中wstring代表广泛字符串,即支持更大的字符集。

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

  

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

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