for_each() und das Funktionsobjekt
-
Moin moin,
ich wollte mal das for_each ausprobieren und hab mir dazu ein Beispielprogramm ausgedacht, nur leider mault der Compiler mal wieder rum#include <iostream> #include <string> #include <vector> using namespace std; class NPC { public: NPC(){bPlayerFriendly = false;}; NPC(bool b) : bPlayerFriendly(b) {}; void setPlayerFriendlyness(bool b) { bPlayerFriendly = b; } //Funktionsobject class isNPCFriendly { public: bool operator()(NPC n) { if(n.bPlayerFriendly == true) { cout << "NPC ist verbuendet" << endl; } else { cout << "NPC ist feindlich" << endl; } return true; } }; private: bool bPlayerFriendly; }; int main() { vector<NPC> npc(5); npc[1].setPlayerFriendlyness(true); npc[2].setPlayerFriendlyness(true); cout << "NPC's angelegt" << endl; vector<NPC>::iterator nIter = for_each(npc.begin(), npc.end(), NPC::isNPCFriendly()); return 0; }Laut Compiler stimmt etwas mit der Zeile 49 nicht, in der ich das Funktionsobject an for_each übergebe. Kann mir einer verraten, was ich da falsch gemacht hab?
-
seux schrieb:
Laut Compiler stimmt etwas mit der Zeile 49 nicht, in der ich das Funktionsobject an for_each übergebe. Kann mir einer verraten, was ich da falsch gemacht hab?
Ja, der Compiler verrät dir das. Leider hast du uns die Fehlermeldung nicht mitgeliefert, daher wirds schwer, sie dir zu übersetzen...
(Vielleicht fehlt einfach das richtige #include?)
-
NPC::isNPCFriendly nif = for_each(npc.begin(), npc.end(), NPC::isNPCFriendly());