Bon, du coup je ne comprends toujours pas cette notion.
En C++, il y a deux natures de variables : les automatiques, les dynamiques. Les variables automatiques sont automatiquement allouées lors de l'exécution du code. En général, ce sont les variables de porté locale, et sont allouées sur la pile :
voidfonction(){autointautomatic=5;}
Les variables dynamiques sont elles allouées à l'aide de new (ou malloc, ou mmap, ou équivalent) :
On remarquera que dans cet exemple, une variable automatique est nécessaire pour contenir l'adresse de l'objet instancié.
Ensuite tu as std::auto_ptr, std::shared_ptr, std::unique_ptr, boost::scoped_ptr qui permettent de gérer automatiquement la libération de l'objet quand l'objet n'est plus référencé.
Bref, qu'est-ce qui est « boxé », et en quoi l'objet est en boîte ou non ?
[^] # Re: boxed/unboxed ou expansion
Posté par LupusMic (site web personnel, Mastodon) . En réponse à la dépêche Encore une couche de rouille avec Rust 0.11. Évalué à 1.
Bon, du coup je ne comprends toujours pas cette notion.
En C++, il y a deux natures de variables : les automatiques, les dynamiques. Les variables automatiques sont automatiquement allouées lors de l'exécution du code. En général, ce sont les variables de porté locale, et sont allouées sur la pile :
Les variables dynamiques sont elles allouées à l'aide de new (ou malloc, ou mmap, ou équivalent) :
On remarquera que dans cet exemple, une variable automatique est nécessaire pour contenir l'adresse de l'objet instancié.
Ensuite tu as std::auto_ptr, std::shared_ptr, std::unique_ptr, boost::scoped_ptr qui permettent de gérer automatiquement la libération de l'objet quand l'objet n'est plus référencé.
Bref, qu'est-ce qui est « boxé », et en quoi l'objet est en boîte ou non ?