Bonjour a tous,
Je cherche a lire une implémentation simple de la fonction async de la STL. Malheureusement, lorsque je "jump to definition", je tombe sur un code qui m'est complètement opaque : Beaucoup de macro, de renvois, etc etc.

Je me suis essayé a implémenter cette fonction (thread, detach, return futur). Comment puis-je l'améliorer ?
Merci d'avance pour tous vos conseils / remarques !

Le code :
A priori, ces deux appels devraient faire la meme chose :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
async(sumSegment, currentSegment);
getFuturValueOfSumOf(currentSegment);
Voici l'implémentation du deuxième :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
future<int> getFuturValueOfSumOf(Segment& seg){
 
    packaged_task<int(const Segment&)> pt0 {&sumSegment}; //llvm bug : use &
    future<int> futur( pt0.get_future());
 
    thread calculateSumOfSegment{move(pt0), seg}; //on lance le calcul
    calculateSumOfSegment.detach(); //on n'attend pas qu'il finisse
    return futur;
}