appel d'une fonction membre dans un thread
Bonjour à tous,
je voulais lancer une fonction membre nommée "stabilisation" (appliquée à un objet "detecteur") via un thread. J'avais donc fait quelque chose comme ça:
Code:
thread stab = thread{&classeDetecteur::stabilisation, detecteur};
Mais je récupérais une erreur de style "core dumped", et j'ai identifié qu'un map membre de ma classe et pourtant rempli plus tôt dans une autre méthode apparaissait vide.
J'ai résolu le problème en utilisant une fonction lambda:
Code:
1 2 3 4
| auto stab = []() {
detecteur.stabilisation();
};
std::thread s = thread{stab}; |
Ça fonctionne comme je veux, mais je ne comprends pas ce qui merdait au niveau de la première formulation? Pour un map pourtant initialisé auparavant apparaissait-il vide?