Je suis en train de faire ce qui suit afin de recevoir une chaîne à partir d'un signal d'impulsion et l'afficher à l'écran. La syntaxe suivante est incorrecte.Connexion pour amplifier le signal Signals2 avec fonction anonyme ou lambda
signal<void (const char*)> UserMessageEvent;
// connect anonymous boost function to display message box on user message event
UserMessageEvent.connect(boost::bind(AfxMessageBox, _1));
Si tel était C# je ferais ce qui suit, me porte à croire que je veux utiliser une fonction lambda pour convertir entre le type de signal d'appel et le type des arguments de AfxMessageBox. Cependant, il n'est pas clair pour moi comment faire cela.
UserMessageEvent += (c) => MessageBox.Show((some const char to LPCSTR conversion)c);
Des suggestions?
Edit: L'erreur donnée par msvc10 est C2914 d'erreur: « boost :: bind »: ne peut pas déduire un argument de modèle comme argument de la fonction est ambiguë
Etes-vous sûr que votre exemple ne fonctionne pas? Je ne vois pas pourquoi il ne serait pas en ce qui concerne le signal boost :: ... – ronag
Je pense qu'il est quelque chose à voir avec les trois paramètres de AfxMessageBox, ou que le const char * à LPCSTR conversion doit être explicite dans certains façon? – Guy