Je ne fais ni de c++ ni de go, mais il me semble que l'ordre de libération est inverse. Ce serait plutôt une pile qu'il faut utiliser.
D'ailleurs il me semble que la gestion des scopes doit pouvoir devenir pigeux :
En go, j'imagine que ça :
funcexample()error{rsrc1:=CreateResource()deferrsrc1.Destroy()iffoo{bar:=bazz()deferbar.Destroy()// some stuff}returnnil}
Devra se traduire par :
voidexample(){new_defer_frame();autorsrc1=CreateResource();defer({rsrc1.Destroy();});if(foo){new_defer_frame();autobar=bazz();defer({bar.Destroy();});// some stuff}}
C'est piégeux de devoir gérer manuellement le contexte (la frame).
# Le diable est l'ennemi du détail (ou un truc comme ça)
Posté par barmic 🦦 . En réponse au journal Une 20-aine de lignes de code pour le defer de Go en C++. Évalué à 3.
Je ne fais ni de c++ ni de go, mais il me semble que l'ordre de libération est inverse. Ce serait plutôt une pile qu'il faut utiliser.
D'ailleurs il me semble que la gestion des scopes doit pouvoir devenir pigeux :
En go, j'imagine que ça :
Devra se traduire par :
C'est piégeux de devoir gérer manuellement le contexte (la frame).
https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll