Ambiguity between operator >> в шаблонном классе
От: Aleksej_A  
Дата: 20.06.06 16:54
Оценка:
Добрый день!
Есть шаблонный класс:

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, операторы ввода из файла разумеется описаны.
Заранее спасибо!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.