Я хочу написать простой объект istream
, который просто преобразует другой istream
.
Я хочу только реализовать readline
(который будет читать строку из исходного потока, обрабатывать его и возвращать обработанную строку), и иметь некоторый общий код, который на read
будет использовать мою строку чтения, кеш он и предоставить требуемое количество байтов в качестве вывода.
Есть ли класс, который позволил бы мне это сделать?
Например
struct mystream : istreamByReadLine {
istream& s;
mystream(istream& _s):s(_s){}
virtual string getline() {
string line;
getline(s,line);
f(line);
return line;
}
}
class istreamByReadLine : istream {
... // implementing everything needed to be istream compatible, using my
... // getline() virtual method
}