C++相談室 part94
■ このスレッドは過去ログ倉庫に格納されています
0701デフォルトの名無しさん
2012/04/21(土) 13:38:50.23istream_iteratorの中からは自分でグローバルに定義したoperator >>が見えない(stdのoperator >>に隠蔽される)からエラーになる。
・解決法の一つ。stdじゃない場所に自分で定義したクラスを介する。
class mypair
{
pair<int, int> p;
public:
mypair() : p() {}
mypair(pair<int, int> const & p1) : p(p1) {}
operator pair<int, int>() const { return p; }
istream & readvalue(istream & is) { return is >> p.first >> p.second; }
};
istream & operator >>(istream & is, mypair & pr)
{
return pr.readvalue(is);
}
int main()
{
istream_iterator< mypair > is(cin);
pair<int, int> p = *is;
}
■ このスレッドは過去ログ倉庫に格納されています