std::vector aus std::pair aus std::string und Methodenpointer
-
Wie lautet die Syntax dafür?
Wenn ich
std::vector<std::pair<std::string,void (myClass::*)()> >
dann sagt der Compiler, er würde einen Bezeichner erwarten. Wie kann ich das lösen?
Noch ein kleiner Hinweis zum Zweck: Wenn ein gewisser String gegeben ist, soll dazu eine Funktion aufgerufen werden. std::map funktioniert in meinem speziellen Falle nicht.
-
Versuch' doch mal, diesem Gebilde einen Namen zu geben:
std::vector<...> myvec;
PS: Dir ist hoffentlich klar, daß du zum Aufrufen der dort reingepackten Methoden ein Objekt vom Typ myClass benötigst.
-
Sorry, Name steht natürlich dahinter. Hatt ich vergessen. myClass existiert, und zwar als Templateparameter und als Instanz als "normales" Argument.
-
An #include <vector>, #include <string>, #include <utility> gedacht?
Definition von myClass ist sichtbar?
Keine Syntaxfehler in der Zeile davor?
-
Ist alles geprüft. Wenn ich was anderes einsetze, lässt es sich kompilieren.
-
Ist der Name myClass an der Stelle mehrdeutig?
-
Jetzt zieht ihm nicht alles einzeln aus der Nase
@Lars Hupel: Mehr Code bitte
-
#include <utility> #include <string> #include <vector> class TfrmSettings : public TFrame { //... public: template<class FrameT> static void show(TForm *calling,FrameT *content,..., const std::vector<std::pair<std::string,void (FrameT::*)()> >& buttonlist) };
Ich vermute mal der erwartet hinter FrameT:: einen Bezeichner.