Hello, I have the compile problem with gcc.
template-id `hash<const char*>' used as a declarator
I got Linux 8.0 gcc 3.2. Is there anyone can help me??? Thank you ahead.
---------------------- LESCompare.hxx
#ifndef TEXT_LCS_COMPARE #define TEXT_LCS_COMPARE #include <string> using namespace std;
#ifndef __SGI_STL_HASH_SET #define __SGI_STL_HASH_SET
#ifndef __SGI_STL_INTERNAL_HASHTABLE_H #include <stl_hashtable.h> using namespace std; #endif
#include <ext/hash_set> using namespace std; #endif /* __SGI_STL_HASH_SET */
typedef unsigned char HashIndexType;
struct strHash { HashIndexType hash<const char*> H;
size_t operator()(string s) const { return H(s.data()); } };
struct Point { int x; int y; };
bool isSimilar(const string& x,const string& y);
bool isSimilar(const int& LCSLen,const int& N,const int& M);
int computeLESLen(const string& s1,const string& s2,int** vbuf=0);
void getPathPoints(int** vbuf,int LES,const string& sx,string& sy,vector<Point>& retPath);
#endif
------------------
[root@ubidata vdiff]# make
Compile LESCompare.cxx
/usr/bin/g++ -c -I/usr/xerces-c-src1_4_0/include -DXERCES14=1 -Wno-deprecated -Wall -g -pg -o LESCompare.o LESCompare.cxx
In file included from LESCompare.cxx:7:
LESCompare.hxx:22: template-id `hash<const char*>' used as a declarator
LESCompare.hxx:22: parse error before `;' token
LESCompare.hxx: In member function `size_t
strHash::operator()(std::basic_string<char, std::char_traits<char>,
std::allocator<char> >) const':
LESCompare.hxx:26: `H' undeclared (first use this function)
LESCompare.hxx:26: (Each undeclared identifier is reported only once for each
function it appears in.)
make: *** [LESCompare.o] Error 1
------------------------------------
-- PARK,YOUNG-HYUN