【发布时间】:2013-08-21 19:44:36
【问题描述】:
虽然以下代码可以在 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 的实例?顺便说一句,这可能吗?
如果我对问题的评价不好,请您提供一些关于如何解决它的见解。
干杯。
【问题讨论】: