J'ai besoin de lier un paramètre à la fonction de membre de la classe. Quelque chose comme ceci:std :: lie le paramètre à la fonction membre sans objet
#include <functional>
#include <iostream>
struct test
{
void func(int a, int b)
{
std::cout << a << " " << b << std::endl;
}
};
int main(int argc, char** argv)
{
typedef void (test::*TFunc)(int);
TFunc func = std::bind(&test::func, 1, std::placeholders::_1);
}
Mais dans ce cas, j'ai erreur de compilation
error: static assertion failed: Wrong number of arguments for pointer-to
-member
Vous ne devriez probablement pas vous attendre à ce que l'objet généré par 'std :: bind' soit convertible en un pointeur de fonction membre simple ... – Quentin
Si vous cherchez un moyen de définir essentiellement une fonction membre en dehors de la définition de la classe, cela ne peut tout simplement pas être fait. Vous pouvez seulement ajouter une surcharge à la classe ou définir une fonction libre. –