TopCoderのプラグインGreed(詳細はTopCoder の強欲プラグイン、Greed を使う!)で自動生成したコードをVisual Studioでビルドすると以下のようなエラーが出ます。
error C2872: 'data': あいまいなシンボルです。 note: 'std::ifstream data' である可能性があります。 note: または 'data'
これが指すコードは以下です。
using namespace std; ifstream data("MajoritySubarray.sample"); string next_line() { string s; getline(data, s); return s; }
エラーの原因は、<string>
ヘッダで提供されるstd::data
という関数と名前がバッティングしていることでした。コード中のdata
をdata2
と変えるとビルドが通りました。
当たり前ですが、ちゃんとしたコードではそもそもusing namespace std;
しないようにしましょう。