STEVMASTER
26-03-2005, 21:26
Habe folgende Funktionsdefinition(bzw. Konstruktor meiner Klasse Way):
Way(std::list<Node*>& node_list);
später erstelle ich eine neue Instanz der Klasse Way:
Way* way = new Way(first_way->getNodeList()); //getNodeList() liefert std::list<Node*> zurück...
der Compiler weigert sich das zu kompilieren, dazu steht:
pathfinder.cc:92: error: no matching function for call to `Way::Way(
std::list<Node*, std::allocator<Node*> >)'
way.h:9: error: candidates are: Way::Way(const Way&)
way.h:15: error: Way::Way(std::list<Node*,
std::allocator<Node*> >&)
way.h:14: error: Way::Way()
Ich hatte schon öfters das Problem, da bin ich das einfach umgangen indem ich die Referenz durch einen richtigen Zeiger als Parameter der Funktion übergeben habe...
Da Referenzen aber eine sauberere Lösung sind als Zeiger will ich wissen wo der Fehler liegt
->darf man bei Template-Klassen wie list keine Referenzen verwenden?
->oder ist es ein Bug im g++ (Version: 3.3.3, Suse 9.1)
thx schonma
Way(std::list<Node*>& node_list);
später erstelle ich eine neue Instanz der Klasse Way:
Way* way = new Way(first_way->getNodeList()); //getNodeList() liefert std::list<Node*> zurück...
der Compiler weigert sich das zu kompilieren, dazu steht:
pathfinder.cc:92: error: no matching function for call to `Way::Way(
std::list<Node*, std::allocator<Node*> >)'
way.h:9: error: candidates are: Way::Way(const Way&)
way.h:15: error: Way::Way(std::list<Node*,
std::allocator<Node*> >&)
way.h:14: error: Way::Way()
Ich hatte schon öfters das Problem, da bin ich das einfach umgangen indem ich die Referenz durch einen richtigen Zeiger als Parameter der Funktion übergeben habe...
Da Referenzen aber eine sauberere Lösung sind als Zeiger will ich wissen wo der Fehler liegt
->darf man bei Template-Klassen wie list keine Referenzen verwenden?
->oder ist es ein Bug im g++ (Version: 3.3.3, Suse 9.1)
thx schonma