C2143, hash_map



 DEVELOP > c-Plus-Plus > C2143, hash_map

LINK TO THIS PAGE  


rating :  0   |  0


  Page 1 of 1

1

 
Topic: DEVELOP > c-Plus-Plus
User: "Florian Liefers"
Date: 12 Nov 2003 09:15:17 AM
Object: C2143, hash_map
"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
.

User: "Ali R."

Title: Re: C2143, hash_map 12 Nov 2003 10:44:51 AM
"Florian Liefers" <replman@web.de> wrote in message
news:opryi5zru4dsyf7f@news.btx.dtag.de...

"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.
.
User: "Florian Liefers"

Title: Re: C2143, hash_map 12 Nov 2003 11:03:06 AM
"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
.


User: "Victor Bazarov"

Title: Re: C2143, hash_map 12 Nov 2003 10:23:58 AM
"Florian Liefers" <replman@web.de> 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
.
User: "Florian Liefers"

Title: Re: C2143, hash_map 12 Nov 2003 10:33:08 AM
"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
.
User: "Victor Bazarov"

Title: Re: C2143, hash_map 12 Nov 2003 10:40:47 AM
"Florian Liefers" <replman@web.de> 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
.
User: "Florian Liefers"

Title: Re: C2143, hash_map 12 Nov 2003 11:28:40 AM

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
.
User: "Victor Bazarov"

Title: Re: C2143, hash_map 12 Nov 2003 11:34:04 AM
"Florian Liefers" <replman@web.de> 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
.
User: "Florian Liefers"

Title: Re: C2143, hash_map 12 Nov 2003 11:44:37 AM

#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
.


User: "=?iso-8859-1?Q?Juli=E1n?= Albo"

Title: Re: C2143, hash_map 12 Nov 2003 11:29:11 AM
Florian Liefers escribi=F3:

#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.
.
User: "Florian Liefers"

Title: Re: C2143, hash_map 12 Nov 2003 11:45:46 AM

#include <map>
typedef map<int, char *> alienMap;
error C2143: Syntaxfehler : Es fehlt ';' vor '<'

typedef std::map<int, char *> alienMap;
Or put "using std::map;" after the #include.

That's it, thank you!!!
Florian
.






User: "Dan Cernat"

Title: Re: C2143, hash_map 12 Nov 2003 03:18:19 PM
Florian Liefers <replman@web.de> wrote in message news:<opryi5zru4dsyf7f@news.btx.dtag.de>...

"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;

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^6
I suspect the problem is with hash<const char*>
probably your compiler doesn't know who is 'hash' which is right
before the '<' sign.


hope anyone can help me!

Tnx,
Florian

HTH
/dan
.


  Page 1 of 1

1

 


Related Articles
 

NEWER

pg.1232     pg.940     pg.716     pg.544     pg.412     pg.311     pg.234     pg.175     pg.130     pg.96     pg.70     pg.50     pg.35     pg.24     pg.16     pg.10     pg.6     pg.3     pg.1

OLDER