【发布时间】:2010-11-24 16:09:42
【问题描述】:
我正在尝试编译以下 sn-p 代码:
#include <boost/filesystem/path.hpp>
//Other includes snipped for brevity
boost::filesystem::path inPath("C:\\PathThatDoesNotExist");
std::cout << "Folder \'" << inPath.external_directory_string()
<< "\' does not exist.";
我收到了这个错误:
.\PathCheck.cpp(31):错误 C2679: 二进制 '
到目前为止,我的研究告诉我,这意味着在编译时类型是未知的,我可能需要 typedef?但我无法在我的脑海或代码中完成这项工作。 external_directory_string() 函数已被弃用,所以我也担心这可能是一个因素(我正在使用#define BOOST_FILESYSTEM_DEPRECATED 处理它)。
有人可以解释 string_type 并推荐如何将它变成 std::string 或 char* 吗?我知道还有其他方法可以从目录路径中获取此信息,但我还是想了解这个问题。 :)
已解决:我有 v2 的 1.44 boost 库,但我的标题中有“#define BOOST_FILESYSTEM_VERSION 3”(使用另一个版本的同事添加了它)。如果我评论这个指令,我的代码就会正确编译。看起来我们需要同步我们的库。
【问题讨论】:
-
代码中的声明(inPath)中是否缺少变量名?
-
你是对的,谢谢。我编辑了。