08. C++ OOP Inheritance and Polymorphism - Task 3. TypedStream
Здравейте,
затруднявам се сериозно с трета задача от домашното заради '>>' оператора. Искам да попитам дали е възможно да оувъррайтнем оператора >> за std::istream ако приема темпейтен параметър и ако да, то как? Това е моята версия на readToEnd() функцията:
std::vector<T> readToEnd() {
std::vector<T> res;
T toRead;
while (this->stream >> toRead) {
res.push_back(toRead);
}
return res;
}
'this->stream >> toRead' ми извежда грешка - "binary '>>': no operator found which takes a right-hand operand of type 'T' (or there is no acceptable conversion)", това предполагам означава, че трябва да оувъррайтна оператора, но когато се опитам да го направя по този начин като съм казал на класа, че това е friend ми казва - "operator '>>' is ambiguous".
template<typename T>
std::istream& operator>>(std::istream out, T& element) {
return out >> element;
}
Нямам идея как да го овъррайтна за да бъде темплейтен. Благодаря предварително!