En ce qui concerne le papier qui décrit la suppression des spécialisations du vide pour STD :: Future et STD :: promesses p0241r0 . Cela peut être une question stupide, mais la solution proposée consiste à éliminer complètement la spécialisation du vide, mais à quoi les gens sont-ils censés faire quand ils veulent instancer un std :: futur
3 Réponses :
Comme indiqué dans la référence, cela serait possible Si void code> était un type régulier
.
void get_value() { void x; return x; }
Pour répondre directement à la question "Qu'est-ce que les gens devraient faire" question - ils ne font rien de différent i>. Future
@ Drewdormann: D'après ce que je comprends, vous devriez faire des changements éventuellement, car vous supprimez le std :: promess
set_value () code> fonction Existe plus longtemps, et vous devriez appeler
set_value ({}) code> à la place.
La déclaration annulation x code> est invalide, mais comme un prix de consolation Le
retour code> Void-Expression i> Construction est valide à la fois C et C ++, par exemple. Vous pouvez écrire
retour get_value (); code> dans une autre fonction. Il n'a rien à voir avec le problème
futur
Le but d'un STD :: futur est de savoir quand un processus sans valeur réelle à revenir est terminé. Donc, fondamentalement, c'est un outil de synchronisation. P>
Cela ne répond pas à la question.
Avoir bricolé de la mise en oeuvre de la TS, il semble possible d'éviter de se spécialiser pour annuler si la mise en œuvre utilise des objets intelligents avec activation_if, par exemple