бинарный ‘& gt; & gt;’: не найден оператор, который принимает правый операнд типа ‘std :: pair & lt; int, int & gt;’

Я получаю эту ошибку, где у меня есть

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

Является ли Visual Studio >> бинарным оператором, а не закрывающими скобками для итератора и пары? Как это можно исправить?

-2

Решение

Это не имеет ничего общего с >> в std::istream_iterator<std::pair<int,int>>, Это связано с std::istream_iterator вызывая предоставленный поток operator >> чтобы получить элементы из потока. Здесь нет operator >> за std::pair по умолчанию, поэтому, если вы не предоставите один, вы получите ошибку компилятора.

4

Другие решения

Других решений пока нет …