Добрый день!
Есть шаблонный класс:
template<class T> class Catalog : public map<T, pair<int, int> > {
public:
Catalog();
void loadFromFile(string);
...
};
И соответственно реализация метода loadFromFile()
template<class T> void Catalog<T>::loadFromFile(string filename) {
ifstream datafile(filename.c_str());
if (!datafile){
throw runtime_error("Can not load data from file " + filename);
}
T item;
int itemcount, itemtaken;
while (!datafile.eof()) {
datafile >> item; //274 строка
datafile >> itemcount >> itemtaken;
map<T, pair<int, int> >::insert(make_pair(item, make_pair(itemcount, itemtaken)));
}
datafile.close();
}
Error E2015 VideoRent.cpp 274: Ambiguity between '_STL::basic_istream<char,_STL::char_traits<char> >::operator >>(bool &)' and '_STL::basic_istream<char,_STL::char_traits<char> >::operator >>(void * &)' in function Catalog<VideoRecord *>::loadFromFile(_STL::basic_string<char,_STL::char_traits<char>,_STL::allocator<char> >)
*** 1 errors in Compile ***
Для типов данных, которые я буду хранить в этом контейнере Catalog, операторы ввода из файла разумеется описаны.
Заранее спасибо!