2017-08-17 6 views
-2

私はバイナリは、「>>」:なしオペレータは

std:map<std:string,std::string> data{std::istream_iterator<std::pair<int,int>>(in),std::istream_iterator<std::pair<int,int>>()}; 

は、Visual Studioが見ていることということである必要があり、このエラーが供給しています「 がのstd ::ペア」タイプの右辺のオペランドをとる見つかりません>>イテレータとペアの閉じ括弧ではなく、バイナリ演算子として?どのようにこれを修正することができますか?

+0

pre C++ 11コンパイラを使用していますか? – user0042

+3

Visual Studioのどのバージョン?簡単な回避策は、間にスペースを入れています: '' 'の代わりに'> '' –

+0

'stdistream_iterator' - >' std :: istream_iterator' – tkausl

答えて

4

これは、std::istream_iterator<std::pair<int,int>>>>とは関係ありません。これは、std::istream_iteratorと、ストリームから要素を取得するために提供されたストリームのoperator >>を呼び出すことと関係しています。デフォルトでstd::pairにはoperator >>がありません。あなたが提供するものでなければ、コンパイラエラーが発生します。

関連する問題