Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > C++ > Why won't this hash_map compile?

Reply
Thread Tools

Why won't this hash_map compile?

 
 
Mark
Guest
Posts: n/a
 
      12-15-2003
Hi,

I'm trying to use hash_map (gcc 3.2.2) with a std::string as the key. It
will compile if I use <map> but I get a bunch of template compile errors
when I change it to hash_map. Any suggestions? My program and the errors
are below...

#include <ext/hash_map>
#include <string>

using namespace std;

__gnu_cxx::hash_map<string, int> storage;

int main()
{
pair<string, int> item("blah", 1);
storage.insert(item);
}

When compiled I get the following:
g++ hm.cpp -o hm
/usr/include/c++/3.2.2/ext/stl_hashtable.h: In member function `size_t
__gnu_cxx::hashtable<_Val, _Key, _HashFcn, _ExtractKey, _EqualKey,
_Alloc>::_M_bkt_num_key(const _Key&, unsigned int) const [with _Val =
std:air<const std::string, int>, _Key = std::string, _HashFcn =
__gnu_cxx::hash<std::string>, _ExtractKey = std::_Select1st<std:air<const
std::string, int> >, _EqualKey = std::equal_to<std::string>, _Alloc =
std::allocator<int>]':
/usr/include/c++/3.2.2/ext/stl_hashtable.h:522: instantiated from `size_t
__gnu_cxx::hashtable<_Val, _Key, _HashFcn, _ExtractKey, _EqualKey,
_Alloc>::_M_bkt_num(const _Val&, unsigned int) const [with _Val =
std:air<const std::string, int>, _Key = std::string, _HashFcn =
__gnu_cxx::hash<std::string>, _ExtractKey = std::_Select1st<std:air<const
std::string, int> >, _EqualKey = std::equal_to<std::string>, _Alloc =
std::allocator<int>]'
/usr/include/c++/3.2.2/ext/stl_hashtable.h:887: instantiated from `void
__gnu_cxx::hashtable<_Val, _Key, _HashFcn, _ExtractKey, _EqualKey,
_Alloc>::resize(unsigned int) [with _Val = std:air<const std::string,
int>, _Key = std::string, _HashFcn = __gnu_cxx::hash<std::string>,
_ExtractKey = std::_Select1st<std:air<const std::string, int> >, _EqualKey
= std::equal_to<std::string>, _Alloc = std::allocator<int>]'
/usr/include/c++/3.2.2/ext/stl_hashtable.h:381: instantiated from
`std:air<__gnu_cxx::_Hashtable_iterator<_Val, _Key, _HashFcn, _ExtractKey,
_EqualKey, _Alloc>, bool> __gnu_cxx::hashtable<_Val, _Key, _HashFcn,
_ExtractKey, _EqualKey, _Alloc>::insert_unique(const _Val&) [with _Val =
std:air<const std::string, int>, _Key = std::string, _HashFcn =
__gnu_cxx::hash<std::string>, _ExtractKey = std::_Select1st<std:air<const
std::string, int> >, _EqualKey = std::equal_to<std::string>, _Alloc =
std::allocator<int>]'
/usr/include/c++/3.2.2/ext/hash_map:171: instantiated from
`std:air<__gnu_cxx::hashtable<std:air<const _Key, _Tp>, _Key, _HashFcn,
std::_Select1st<std:air<const _Key, _Tp> >, _EqualKey, _Alloc>::iterator,
bool> __gnu_cxx::hash_map<_Key, _Tp, _HashFcn, _EqualKey,
_Alloc>::insert(__gnu_cxx::hashtable<std:air<con st _Key, _Tp>, _Key,
_HashFcn, std::_Select1st<std:air<const _Key, _Tp> >, _EqualKey,
_Alloc>::value_type&) [with _Key = std::string, _Tp = int, _HashFcn =
__gnu_cxx::hash<std::string>, _EqualKey = std::equal_to<std::string>, _Alloc
= std::allocator<int>]'
hm.cpp:14: instantiated from here
/usr/include/c++/3.2.2/ext/stl_hashtable.h:517: no match for call to `(const
__gnu_cxx::hash<std::string>) (const std::basic_string<char,
std::char_traits<char>, std::allocator<char> >&)'
make: *** [hm] Error 1


 
Reply With Quote
 
 
 
 
Victor Bazarov
Guest
Posts: n/a
 
      12-15-2003
"Mark" <(E-Mail Removed)> wrote...
> I'm trying to use hash_map (gcc 3.2.2) with a std::string as the key. It
> will compile if I use <map> but I get a bunch of template compile errors
> when I change it to hash_map. Any suggestions?[...]


hash_map is not a standard class or template, so it's OT here unless
you provide its full definition.

If 'hash_map' is part of gcc, I recommend gnu.g++.help newsgroup.

Victor


 
Reply With Quote
 
 
 
 
Michael Mellor
Guest
Posts: n/a
 
      12-15-2003
Mark wrote:
> Hi,
>
> I'm trying to use hash_map (gcc 3.2.2) with a std::string as the key. It
> will compile if I use <map> but I get a bunch of template compile errors
> when I change it to hash_map. Any suggestions? My program and the errors
> are below...
>
> #include <ext/hash_map>
> #include <string>
>
> using namespace std;
>
> __gnu_cxx::hash_map<string, int> storage;
>
> int main()
> {
> pair<string, int> item("blah", 1);
> storage.insert(item);
> }
>
> When compiled I get the following:
> g++ hm.cpp -o hm

[...]
Have a look here:
http://gcc.gnu.org/ml/libstdc++/2002-04/msg00107.html

Mike
 
Reply With Quote
 
Mark
Guest
Posts: n/a
 
      12-15-2003
Perfect! Thanks Michael!

Although I may end up just using <map> since my data is small and it'd be
nice to conform to the standard (although apparently hash_map is being added
to the standard on the next go-around).

Mark


"Michael Mellor" <(E-Mail Removed)> wrote in message
news:brlglc$sa6$(E-Mail Removed)...
> Mark wrote:
> > Hi,
> >
> > I'm trying to use hash_map (gcc 3.2.2) with a std::string as the key.

It
> > will compile if I use <map> but I get a bunch of template compile errors
> > when I change it to hash_map. Any suggestions? My program and the

errors
> > are below...
> >
> > #include <ext/hash_map>
> > #include <string>
> >
> > using namespace std;
> >
> > __gnu_cxx::hash_map<string, int> storage;
> >
> > int main()
> > {
> > pair<string, int> item("blah", 1);
> > storage.insert(item);
> > }
> >
> > When compiled I get the following:
> > g++ hm.cpp -o hm

> [...]
> Have a look here:
> http://gcc.gnu.org/ml/libstdc++/2002-04/msg00107.html
>
> Mike



 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
why why why why why Mr. SweatyFinger ASP .Net 4 12-21-2006 01:15 PM
findcontrol("PlaceHolderPrice") why why why why why why why why why why why Mr. SweatyFinger ASP .Net 2 12-02-2006 03:46 PM
hash_map iterator Charles Herman C++ 5 11-04-2003 02:50 AM
Pre-standardizing hash_map & friends. Jacek Generowicz C++ 0 08-26-2003 12:58 PM
2d hash_map iteration ? Kristofer Pettijohn C++ 1 06-26-2003 08:18 AM



Advertisments