1
Le code suivant renvoie une erreur à la ligne où je veux créer un objet foncteur de Test::fun2
:problème avec boost :: bind
#include <boost/shared_ptr.hpp>
#include <boost/bind.hpp>
#include <boost/function.hpp>
using namespace boost;
class Test
{
public:
float fun1() { return 0.0f; }
void fun2(float x) {}
};
int main(int argc, char* argv[])
{
shared_ptr<Test> p = shared_ptr<Test>(new Test);
function<float(void)> f1 = bind(&Test::fun1, p);
function<void(float)> f2 = bind(&Test::fun2, p);
return 1;
}
Le compilateur me donne un ensemble d'erreurs de modèle et
`void (Test::*)(float)' is not a class, struct, or union type
qui semble être l'erreur principale. Néanmoins, je n'ai aucune idée de quel est le problème ici et comment le résoudre.
vous pouvez accepter votre propre réponse. –
Le titre du problème fait un peu défaut! – Ant