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