12 votes

Une manière courte de lier une fonction membre à une instance d'objet, sans lier les paramètres.

J'ai une fonction membre avec plusieurs arguments. J'aimerais la lier à une instance d'objet spécifique et la passer à une autre fonction. Je peux le faire avec des placeholders :

// actualInstance is a MyClass*
auto callback = bind(&MyClass::myFunction, actualInstance, _1, _2, _3);

Mais cette méthode est un peu maladroite. Par exemple, lorsque le nombre de paramètres change, je dois également modifier tous les appels de liaison. De plus, il est assez fastidieux de taper tous les caractères de remplacement, alors que tout ce que je veux vraiment, c'est créer facilement un "pointeur de fonction" incluant une référence d'objet.

Donc ce que j'aimerais pouvoir faire, c'est quelque chose comme :

auto callback = objectBind(&MyClass::myFunction, actualInstance);

Quelqu'un connaît-il un moyen efficace de le faire ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X