尽管以下代码在 Linux 上编译,但我无法在 Windows 上编译它:
boost::filesystem::path defaultSaveFilePath( base_directory );
defaultSaveFilePath = defaultSaveFilePath / "defaultfile.name";
const std::string s = defaultSaveFilePath.native();
return save(s);
其中 base_directory 是一个类的属性,它的类型是 std::string,函数 save 只接受一个 const std::string & 作为参数。编译器抱怨第三行代码:
错误:请求从 'const string_type {aka const std::basic_string}' 转换为非标量类型 'const string {aka const std::basic_string}'
对于这个软件,我使用了 Boost 1.54(对于一些公共库)和 Qt 4.8.4(对于使用这个公共库的 UI),并且我用 MingW GCC 4.6.2 编译了所有东西。
似乎我的 Windows Boost 版本出于某种原因返回 std::basic_string 。如果我的评估是正确的,我问你:如何让 Boost 返回 std::string 的实例?顺便说一句,这可能吗?
如果我对这个问题的评价不好,我请你提供一些关于如何解决它的见解。
干杯。