Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : hash_map deklarationen Sichtbarkeiten



christophwth
20-03-2003, 18:03
HI

ich habe das problem dass , ich gerade versuche alten
code auf einem aktuellen g++ lauffähig zu bekommen.

das problem sind die namespace änderungen
in g++3.2

die deklartion sieht so aus :
alt :


#include <hash_map>
.
.

QString* CView::getDbSql(bool drop){
QString *sql = new QString;
vector<CTable*> tables;
hash_map<int, int> id2idx;


führt zu :



cview.cpp:25:20: hash_map: Datei oder Verzeichnis nicht gefunden
cview.cpp: In member function `void CView::setFocusItem(CTableItem*)':


deshalb habe es ich geändert in :



#include <ext/hash_map>
.
.

In member function `QString* CView::getDbSql(bool)':
cview.cpp:583: `hash_map' undeclared (first use this function)




wie bekomme ich das hin, dass die hash_map header-datei im richtigen sichtbarkeitsbereich gesucht wird ?
std::hash_map geht nicht .

Danke ,

gruss
christoph

tkortkamp
20-03-2003, 18:37
Hi!

hash_map gehört nicht zum C++-Standard und ist deswegen im Namespace __gnu_cxx als Erweiterung zu finden.



#if __GNUC__ < 3
#include <hash_map.h>
#else
#include <ext/hash_map>
using __gnu_cxx::hash_map;
#endif

So kannst du hash_map weiter mit g++ 2.95 und g++ 3.x verwenden.

c ya,
Tobias

christophwth
21-03-2003, 12:46
HI

Danke , das war es . :)
hatte schon lange nach dem __gnu_cxx::hash_map; gesucht .

gibt es eine übersicht wo erläutert wird welche namespace bereiche noch definiert sind?

gruss
christoph