作業中のプロジェクトにVisualStudioを使用していますが、Linux上のGCCでもコンパイルする必要があります。プロジェクトを完了し、正常に実行されましたが、ファイルをLinuxシェルに送信したところ、簡単なコード行でエラーが発生しました。
std::ifstream input(s);
これにより、一致する関数がないというエラーが発生します。ちなみにですs
。std::string
ifstreamのドキュメントを見ているのに、なぜこれがVisual Studioで実行され、GCCでは実行されないのかを誰かに教えてもらえますか?おそらく古いバージョンの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);