【发布时间】:2012-04-24 17:04:34
【问题描述】:
我一直在将 Visual Studio 用于我正在处理的项目,尽管它还必须在 Linux 上使用 GCC 进行编译。我已经完成了我的项目并且它运行良好,但是我将文件发送到我的 Linux shell 并且我收到了一个错误的代码行:
std::ifstream input(s);
这给了我一个错误,说没有匹配的功能。顺便说一句,s 是std::string。
任何人都可以告诉我为什么它在 Visual Studio 下运行而不是在 GCC 下运行,即使我正在查看 ifstream 的文档?也许是旧版本的 GCC?
编辑:GCC 版本是 4.2.1 确切的错误是:
error: no matching function for call to 'std::basic_ifstream<char,
std::char_traits<char>>::basic_ifstream(std::string&)'
编辑2:相关代码:
std::string s = "";
if(argc == 2)
s = argv[1];
else{
std::cout << "Bad filename?" << std::endl;
return 1;
}
std::ifstream input(s);
【问题讨论】:
-
这个:ideone.com/w6IJ5 工作正常;您可能应该发布您的完整代码。
-
@RoryYorke 更新了我认为唯一相关的代码。
标签: c++ visual-studio compiler-errors g++