Pour une classe, je veux stocker des pointeurs de fonction pour les fonctions de membres de la même classe dans une map
stocker std::function
objets. Mais je n'arrive pas dès le début avec ce code:
class Foo {
public:
void doSomething() {}
void bindFunction() {
// ERROR
std::function<void(void)> f = &Foo:doSomething;
}
};
Je reçois error C2064: term does not evaluate to a function taking 0 arguments
en xxcallobj
combiné avec d'étranges instanciation d'un modèle d'erreurs. Actuellement je travaille sur Windows 8 avec Visual Studio 2010/2011 et sur Win 7 avec VS10 il échoue également. L'erreur doit être basée sur certains bizarre C++ règles je ne les suivez pas.
EDIT: je ne PAS utiliser boost. C'est le C++11 intégrés dans la MS du compilateur.