std::la fonction de membre de la fonction
#include <functional>
struct A
{
int func(int x, int y)
{
return x+y;
}
};
int main()
{
typedef std::function<int(int, int) > Funcp;
A a;
//Funcp func = std:::bind(&A::func, &a);
Funcp func = std::bind(&A::func, a, std::placeholders::_1);
return 0;
}
J'obtiens des erreurs dans les deux ci-dessus lier fonctions:
error C2825: '_Fty': must be a class or namespace when followed by '::'
Où est l'erreur de syntaxe? Je suis à l'aide de visual studio 2010
- Vous avez besoin d'un _2 ainsi que _1 mais qui ne semble pas être l'erreur que vous obtenez. Est le bon en-tête pour les espaces pour être inclus?
- il a travaillé après le _2 variable
- Je souhaite que les compilateurs serait de donner la bonne erreurs. C'était l'erreur évidente, mais ce n'était pas évident que le compilateur a été dit.
Vous devez vous connecter pour publier un commentaire.
Funcp func = std::bind(&A::func, &a, std::placeholders::_1, std::placeholders::_2);
std::function
. Ils vous permettent de réorganiser, de dupliquer et de les omettre les paramètres à partir du site d'appel. Dans ce cas, ils sont des espaces réservés pour les paramètres que vous remplissez dansx
ety
respectivement.