Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > C++ > C2143, hash_map

Reply
Thread Tools

C2143, hash_map

 
 
Florian Liefers
Guest
Posts: n/a
 
      11-12-2003
"Hello World\n",

i get error C2143 (Syntaxerror, missing ';' before '<') using the
following code:

#include <hash_map>

struct eqstr
{
bool operator()(const char* s1, const char* s2) const
{
return strcmp(s1, s2) == 0;
}
};

typedef hash_map<const char*, int, hash<const char*>, eqstr> months;

hope anyone can help me!

Tnx,
Florian
 
Reply With Quote
 
 
 
 
Victor Bazarov
Guest
Posts: n/a
 
      11-12-2003
"Florian Liefers" <(E-Mail Removed)> wrote...
> "Hello World\n",
>
> i get error C2143 (Syntaxerror, missing ';' before '<') using the
> following code:
>
> #include <hash_map>
>
> struct eqstr
> {
> bool operator()(const char* s1, const char* s2) const
> {
> return strcmp(s1, s2) == 0;
> }
> };
>
> typedef hash_map<const char*, int, hash<const char*>, eqstr> months;


What's "hash_map"? Are you sure it's the name of the template?
Are you sure it's not in some kind of namespace that you forgot
to mention?

The questions and doubts expressed by me here are due to the fact
that there is no standard header <hash_map>, so you cannot assume
that anybody here knows what you're talking about.

Victor


 
Reply With Quote
 
 
 
 
Florian Liefers
Guest
Posts: n/a
 
      11-12-2003
"Hello World\n",

> What's "hash_map"? Are you sure it's the name of the template?
> Are you sure it's not in some kind of namespace that you forgot
> to mention?
>
> The questions and doubts expressed by me here are due to the fact
> that there is no standard header <hash_map>, so you cannot assume
> that anybody here knows what you're talking about.


I found hash_map here:
http://www.sgi.com/tech/stl/hash_map.html
I can open the header file hash_map and in VC.NET there is a help site by
pressing F1.

If there is another hash-map class please tell me! That would be very
nice!!!

Tnx,
Florian
 
Reply With Quote
 
Victor Bazarov
Guest
Posts: n/a
 
      11-12-2003
"Florian Liefers" <(E-Mail Removed)> wrote...
> "Hello World\n",
>
> > What's "hash_map"? Are you sure it's the name of the template?
> > Are you sure it's not in some kind of namespace that you forgot
> > to mention?
> >
> > The questions and doubts expressed by me here are due to the fact
> > that there is no standard header <hash_map>, so you cannot assume
> > that anybody here knows what you're talking about.

>
> I found hash_map here:
> http://www.sgi.com/tech/stl/hash_map.html
> I can open the header file hash_map and in VC.NET there is a help site by
> pressing F1.


That's all nice, but it has nothing to do with Standard C++. If you
read carefully, you can see that on SGI's web page it says that the
hash_map is an extension, not part of the standard C++. Whatever VC++
tells you is also beyond the scope of this newsgroup. Could it be
that the two hash_map implementations get confused by your VC++ compiler?

> If there is another hash-map class please tell me! That would be very
> nice!!!


There probably is. But why don't you use 'std::map' instead? It
works fine for what you need (probably), and it would be topical
here.

Victor


 
Reply With Quote
 
Ali R.
Guest
Posts: n/a
 
      11-12-2003
"Florian Liefers" <(E-Mail Removed)> wrote in message
news(E-Mail Removed)...
> "Hello World\n",
>
> i get error C2143 (Syntaxerror, missing ';' before '<') using the
> following code:
>
> #include <hash_map>
>
> struct eqstr
> {
> bool operator()(const char* s1, const char* s2) const
> {
> return strcmp(s1, s2) == 0;
> }
> };
>
> typedef hash_map<const char*, int, hash<const char*>, eqstr> months;

^^^^
what is hash defined as?

Ali R.



 
Reply With Quote
 
Florian Liefers
Guest
Posts: n/a
 
      11-12-2003
"Hello World\n",
>> typedef hash_map<const char*, int, hash<const char*>, eqstr> months;

> ^^^^
> what is hash defined as?

Hm, good question. But in the doc params >2 are optional.
I also tried it just with 2 params (without hash<const char*>, eqstr), but
the same error occurs .

I found hashmap @ http://www.sgi.com/tech/stl/hash_map.html

Florian
 
Reply With Quote
 
Florian Liefers
Guest
Posts: n/a
 
      11-12-2003
> That's all nice, but it has nothing to do with Standard C++. If you
> read carefully, you can see that on SGI's web page it says that the
> hash_map is an extension, not part of the standard C++. Whatever VC++
> tells you is also beyond the scope of this newsgroup. Could it be
> that the two hash_map implementations get confused by your VC++ compiler?

Ok, sorry for OT, i didn't know.

> There probably is. But why don't you use 'std::map' instead? It
> works fine for what you need (probably), and it would be topical
> here.

Yes, that's exactly what i'm searching for. The problem is, that now i get
the same error with map

#include <map>
typedef map<int, char *> alienMap;

results in
error C2143: Syntaxfehler : Es fehlt ';' vor '<'
which means in english: missing ';' before '<'

Florian
 
Reply With Quote
 
=?iso-8859-1?Q?Juli=E1n?= Albo
Guest
Posts: n/a
 
      11-12-2003
Florian Liefers escribió:

> #include <map>
> typedef map<int, char *> alienMap;
>
> results in
> error C2143: Syntaxfehler : Es fehlt ';' vor '<'
> which means in english: missing ';' before '<'



typedef std::map<int, char *> alienMap;

Or put "using std::map;" after the #include.

Regards.
 
Reply With Quote
 
Victor Bazarov
Guest
Posts: n/a
 
      11-12-2003
"Florian Liefers" <(E-Mail Removed)> wrote...
> > That's all nice, but it has nothing to do with Standard C++. If you
> > read carefully, you can see that on SGI's web page it says that the
> > hash_map is an extension, not part of the standard C++. Whatever VC++
> > tells you is also beyond the scope of this newsgroup. Could it be
> > that the two hash_map implementations get confused by your VC++

compiler?
> Ok, sorry for OT, i didn't know.
>
> > There probably is. But why don't you use 'std::map' instead? It
> > works fine for what you need (probably), and it would be topical
> > here.

> Yes, that's exactly what i'm searching for. The problem is, that now i get
> the same error with map
>
> #include <map>
> typedef map<int, char *> alienMap;
>
> results in
> error C2143: Syntaxfehler : Es fehlt ';' vor '<'
> which means in english: missing ';' before '<'


In the header <map> the template 'map' is declared in 'std' namespace.
You HAVE TO tell your compiler that you're going to be using the 'map'
from 'std':

typedef std::map<int,char*> alienMap;

Victor


 
Reply With Quote
 
Florian Liefers
Guest
Posts: n/a
 
      11-12-2003
>> #include <map>
>> typedef map<int, char *> alienMap;
>>
>> results in
>> error C2143: Syntaxfehler : Es fehlt ';' vor '<'
>> which means in english: missing ';' before '<'

>
> In the header <map> the template 'map' is declared in 'std' namespace.
> You HAVE TO tell your compiler that you're going to be using the 'map'
> from 'std':
>
> typedef std::map<int,char*> alienMap;


Oh no, just like a beginner... (me)

That's it...Thanks alot!!!!!!!!!!!!

Florian
 
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 won't this hash_map compile? Mark C++ 3 12-15-2003 11:42 PM
hash_map Jon Cosby C++ 10 12-02-2003 12:31 AM
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