私は作業中のプロジェクトでVisual Studioを使用していましたが、LinuxのGCCでもコンパイルする必要があります。私は自分のプロジェクトを完了しているし、それが正常に動作しますが、私は私のLinuxシェルにファイルを介して送信さと私はコードの些細な行でエラーを受信:g ++でifstreamエラーが発生しましたが、Visual Studioでコンパイルする
std::ifstream input(s);
これは、一致する関数が存在しないと言って私にエラーを与えます。ちなみにs
はstd::string
です。 ifstreamのドキュメンテーションを見ていても、Visual Studioでは動作しますが、GCCでは動作しない理由を誰にでも教えてください。おそらく古いバージョンのGCCですか?
EDIT:GCCのバージョン4.2.1正確なエラーがでている。
error: no matching function for call to 'std::basic_ifstream<char,
std::char_traits<char>>::basic_ifstream(std::string&)'
EDIT 2:関連するコード:
std::string s = "";
if(argc == 2)
s = argv[1];
else{
std::cout << "Bad filename?" << std::endl;
return 1;
}
std::ifstream input(s);
エラーは何ですか? – Joe
これ:http://ideone.com/w6IJ5はうまく動作します。おそらく完全なコードを投稿するべきです。 –
@RoryYorke唯一の関連コードであると私は信じて更新しました。 –