C2143, hash_map

F

Florian Liefers

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

Victor Bazarov

Florian Liefers said:
"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
 
F

Florian Liefers

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

Victor Bazarov

Florian Liefers said:
"Hello World\n",


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
 
A

Ali R.

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

Florian Liefers

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
 
?

=?iso-8859-1?Q?Juli=E1n?= Albo

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

Victor Bazarov

Florian Liefers said:
compiler?
Ok, sorry for OT, i didn't know.

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
 
F

Florian Liefers

#include said:
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
 
D

Dan Cernat

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

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,537
Members
45,023
Latest member
websitedesig25

Latest Threads

Top