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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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?