>Submitter-Id: net >Originator: Goswin Brederlow <[EMAIL PROTECTED]> >Organization: The Debian project >Confidential: no >Synopsis: missing hash function for std::string >Severity: serious >Priority: medium >Category: libstdc++ >Class: rejects-legal >Release: 3.0 (Debian GNU/Linux) >Environment: System: Debian GNU/Linux (testing/unstable) Architecture: i686 host: i386-linux build: i386-linux target: i386-linux configured with: ../src/configure -v --enable-languages=c,c++,java,f77,proto,objc --prefix=/usr --infodir=/share/info --mandir=/share/man --enable-shared --with-gnu-as --with-gnu-ld --with-system-zlib --enable-long-long --enable-nls --without-included-gettext --disable-checking --enable-threads=posix --enable-java-gc=boehm --with-cpp-install-dir=bin --enable-objc-gc i386-linux >Description: [ Reported to the Debian BTS as report #87063. Please CC [EMAIL PROTECTED] on replies. Log of report can be found at http://bugs.debian.org/87063 ]
The STL hash_map does not work with strings. This is because no hash<string> spezialisation is defined. The code for char* should be used for strings also. Heres a testcase: ---------------------------------------------------------------------- #include <ext/hash_map> #include <string> using namespace std; int main() { hash_map<string, int> myHashMap; myHashMap["Hallo"] = 42; } ---------------------------------------------------------------------- [commented by Laurent Bonnaud <[EMAIL PROTECTED]>:] This one is clearly a bug. In the Stroustrup book v3 (not the definitive reference, but it's the closest thing I have) §17.6.1 explicitely uses a hash_map<string, int> class. Furthermore, §17.6.2.3 discusses about hashing strings. >How-To-Repeat: >Fix: