 |
C++Talk.NET C++ language newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
Achim Domma (Procoders) Guest
|
Posted: Fri Apr 29, 2005 9:43 am Post subject: String auf Handler dispatchen |
|
|
Hallo,
ich würde gerne einen String auf einen entsprechenden Methodenaufruf
mappen. An Stelle von langen, verschachtelten if Blöcken, wollte ich das
mit einer std::map mit Memberpointer lösen. Hier mein erster,
gescheiterter Versuch:
class Disp {
public:
typedef Disp::*Handler(long i);
^^^^^^
Hier müßte ein void hin, was aber zu einem Fehler führt!?
std::map<std::string,Handler> disp_;
void handler_a(long i) {
std::cout << "handler_a:" << i << std::endl;
}
Disp() {
disp_.insert(std::make_pair("a",Disp::handler_a));
}
}
VC++ gibt eine Warnung aus, daß "qualifier applied to function type has
no meaning". Dann gibt's im ctor von std::pair einen Fehler: "'second' :
member function or nested class in constructor initializer list"
Pointer auf Memberfunktionen haben mir schon immer Probleme gemacht.
Kann mir jemand helfen?
Gruß,
Achim
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Rolf Magnus Guest
|
Posted: Sun May 01, 2005 11:39 am Post subject: Re: String auf Handler dispatchen |
|
|
Achim Domma (Procoders) wrote:
| Quote: | Hallo,
ich würde gerne einen String auf einen entsprechenden Methodenaufruf
mappen. An Stelle von langen, verschachtelten if Blöcken, wollte ich das
mit einer std::map mit Memberpointer lösen. Hier mein erster,
gescheiterter Versuch:
class Disp {
public:
typedef Disp::*Handler(long i);
^^^^^^
Hier müßte ein void hin, was aber zu einem Fehler führt!?
|
typedef void (Disp::*Handler)(long i);
| Quote: | std::map<std::string,Handler> disp_;
void handler_a(long i) {
std::cout << "handler_a:" << i << std::endl;
}
Disp() {
disp_.insert(std::make_pair("a",Disp::handler_a));
}
}
|
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Thomas Maeder Guest
|
Posted: Sun May 01, 2005 12:59 pm Post subject: Re: String auf Handler dispatchen |
|
|
"Achim Domma (Procoders)" <domma (AT) procoders (DOT) net> writes:
| Quote: | class Disp {
public:
typedef Disp::*Handler(long i);
^^^^^^
|
Da fehlt ein paar Klammern und der Rückgabetyp:
typedef void (Disp::*Handler)(long i);
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|