Hi
I'm stuck with this template error, I really don't understand what's going on:
my error message:
/usr/lib/gcc-lib/i386-linux/2.95.4/../../../../include/g++-3/stl_hashtable.h: In method `size_t hashtable<pair<const basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> >,Magick::Image>,basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> >,hash<basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> > >,_Select1st<pair<const basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> >,Magick::Image> >,equal_to<basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> > >,allocator<Magick::Image> >::_M_bkt_num_key(const string &, unsigned int) const':
/usr/lib/gcc-lib/i386-linux/2.95.4/../../../../include/g++-3/stl_hashtable.h:521: instantiated from `hashtable<pair<const basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> >,Magick::Image>,basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> >,hash<basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> > >,_Select1st<pair<const basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> >,Magick::Image> >,equal_to<basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> > >,allocator<Magick::Image> >::_M_bkt_num_key(const string &) const'
/usr/lib/gcc-lib/i386-linux/2.95.4/../../../../include/g++-3/stl_hashtable.h:460: instantiated from `hashtable<pair<const basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> >,Magick::Image>,basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> >,hash<basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> > >,_Select1st<pair<const basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> >,Magick::Image> >,equal_to<basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> > >,allocator<Magick::Image> >::find(const string &)'
/usr/lib/gcc-lib/i386-linux/2.95.4/../../../../include/g++-3/stl_hash_map.h:176: instantiated from `hash_map<basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> >,Magick::Image,hash<basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> > >,equal_to<basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> > >,allocator<Magick::Image> >::find(const string &)'
CacheSystem/CacheFifo.hpp:109: instantiated from `CacheSystem::CacheFifo<Magick::Image,basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> >,loader::Loader<basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> > > >::getImageObject(string &)'
Main.cpp:26: instantiated from here
/usr/lib/gcc-lib/i386-linux/2.95.4/../../../../include/g++-3/stl_hashtable.h:531: no match for call to `(const hash<basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> > >) (const basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> > &)'
And my code:
template<class T, class K, class L>
class CacheFifo {
hash_map<K, T, hash<K> > _image_set;
...
T getImageObject(K &key) throw (NotEnoughSpaceException,
RemovalImpossibleException){
l109---> hash_map<K, T, hash<K> >::iterator index = (this->_image_set).find(key);
return 0;
}
};//end class
And I call this method here:
string file_name = string(argv[1]);
CacheFifo<Image, string, Loader<string> > cache = CacheFifo<Image, string, Loader<string> >(l);
Image pic = cache.getImageObject(file_name);
I acknowledge, it's a bit horrible. It seems as if find() goes wrong. When I comment the line with --->, everything goes well.
I thank you very much if you spend some time on my problem
LDdA
I'm stuck with this template error, I really don't understand what's going on:
my error message:
/usr/lib/gcc-lib/i386-linux/2.95.4/../../../../include/g++-3/stl_hashtable.h: In method `size_t hashtable<pair<const basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> >,Magick::Image>,basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> >,hash<basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> > >,_Select1st<pair<const basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> >,Magick::Image> >,equal_to<basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> > >,allocator<Magick::Image> >::_M_bkt_num_key(const string &, unsigned int) const':
/usr/lib/gcc-lib/i386-linux/2.95.4/../../../../include/g++-3/stl_hashtable.h:521: instantiated from `hashtable<pair<const basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> >,Magick::Image>,basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> >,hash<basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> > >,_Select1st<pair<const basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> >,Magick::Image> >,equal_to<basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> > >,allocator<Magick::Image> >::_M_bkt_num_key(const string &) const'
/usr/lib/gcc-lib/i386-linux/2.95.4/../../../../include/g++-3/stl_hashtable.h:460: instantiated from `hashtable<pair<const basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> >,Magick::Image>,basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> >,hash<basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> > >,_Select1st<pair<const basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> >,Magick::Image> >,equal_to<basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> > >,allocator<Magick::Image> >::find(const string &)'
/usr/lib/gcc-lib/i386-linux/2.95.4/../../../../include/g++-3/stl_hash_map.h:176: instantiated from `hash_map<basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> >,Magick::Image,hash<basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> > >,equal_to<basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> > >,allocator<Magick::Image> >::find(const string &)'
CacheSystem/CacheFifo.hpp:109: instantiated from `CacheSystem::CacheFifo<Magick::Image,basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> >,loader::Loader<basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> > > >::getImageObject(string &)'
Main.cpp:26: instantiated from here
/usr/lib/gcc-lib/i386-linux/2.95.4/../../../../include/g++-3/stl_hashtable.h:531: no match for call to `(const hash<basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> > >) (const basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> > &)'
And my code:
template<class T, class K, class L>
class CacheFifo {
hash_map<K, T, hash<K> > _image_set;
...
T getImageObject(K &key) throw (NotEnoughSpaceException,
RemovalImpossibleException){
l109---> hash_map<K, T, hash<K> >::iterator index = (this->_image_set).find(key);
return 0;
}
};//end class
And I call this method here:
string file_name = string(argv[1]);
CacheFifo<Image, string, Loader<string> > cache = CacheFifo<Image, string, Loader<string> >(l);
Image pic = cache.getImageObject(file_name);
I acknowledge, it's a bit horrible. It seems as if find() goes wrong. When I comment the line with --->, everything goes well.
I thank you very much if you spend some time on my problem
LDdA