c ++ typedef std::function<> Comment l'utiliser?
Salut, je suis en train de travailler sur ce projet et dans l'en-tête du fichier est défini
typedef std::function<unsigned int(const std::string&)> HashFunction;
Exactement comment dois-je utiliser avec mon HashFunction?
Lorsque j'essaie
HashFunction myHashFunction;
myHashFunction("mystring");
le programme se bloque.
Il serait probablement aider grandement si cette fonction de l'objet ont été effectivement référencement fonction. Voir la documentation sur les
std::function<>
, ou de toute autre norme de la bibliothèque de la classe, avant de commencer à essayer de les utiliser.OriginalL'auteur Hank Cui | 2013-11-16
Vous devez vous connecter pour publier un commentaire.
Un objet de type
std::function<Signature>
se comporte un peu comme une fonction de pointeur qui pointe vers une fonction avec la signatureSignature
. Un défaut construitstd::function<Signature>
n'a tout simplement pas de point à n'importe quelle fonction, encore. La principale différence entrestd::function<Signature>
et un pointeur de fonctionSignature*
est que vous pouvez avoir un certain état de forme d'un objet de fonction dansstd::function<Signature>
.D'utiliser un objet de ce type, vous aurez besoin de l'initialiser avec une fonction appropriée, par exemple
HashFunction hash{ Hash() };
Il me donne un message d'erreur indiquant que ; attendu après hachageAu moins l'utilisation est destinée à aller dans le fuction. Je vais mettre à jour l'exemple d'un programme complet.
Roulé la extra
;
, qui n'appartiennent pas là et a arrêté le programme à partir de la compilation.Peut compiler avec succès, une mise à jour?@DietmarKühl
OriginalL'auteur Dietmar Kühl