Bonjour,
Je voudrais utiliser une map statique dans une classe, servant de pointeur sur fonction. Seulement je n'arrive pas à l'initialiser ou à l'utiliser.
J'ai fait ceci:
Code :
- //Toto.hpp
- typedef void(Toto::*cmd)(std::string);
- static std::map<std::string, cmd> cmds;
- //Toto.cpp
- //Dans le constructeur
- if (cmds.empty())
- {
- cmds["test"] = &Toto::fonction;
- }
|
Il ne se plaint pas lors de la compilation, par contre lors du linkage je me tape des erreurs de ce type:
Citation :
Toto.o: In function `Toto::Toto(boost::asio::io_service& )':
Toto.cpp:(.text+0x1807): undefined reference to `Toto::cmds'
Toto.cpp:(.text+0x1847): undefined reference to `Toto::cmds'
|
Je ne sais pas si la méthode est très propre mais ça m'étonne que je ne puisse même pas accéder à la variable, j'ai oublié quelque chose?
Message édité par Raziel le 17-11-2009 à 15:41:07