У меня есть набор функций полезности, которые читаются в строках из потока, а не для чтения по слову. Они работают с string
s, поэтому я бы хотел локально изменить оператор извлечения string
только в рамках этих функций. Это возможно?Локально Переопределение оператора извлечения строк
Что я делаю прямо сейчас, чтобы создать struct
, который является string
и писать оператор извлечения для этого только структуры.
struct line{
string str;
};
istream& operator>>(istream& lhs, line& rhs){
return getline(lhs, rhs.str);
}
А затем экстракции istream
вроде этого:
vector<line> foo{ istream_iterator<line>(istringstream("Lorem Ipsum\nLorem Ipsum")), istream_iterator<line>() };
Это прекрасно работает, но я не люблю struct line
обертку. Я спрашиваю, могу ли я локально перегрузить , чтобы выполнить это?
Спасибо за ответ, хотя это меня огорчает. Это на самом деле то, что я делал, я просто не хотел слишком много загромождать этот вопрос. –