Pourquoi les éléments de la pile doivent-ils avoir une taille connue au moment de la compilation?

Dec 03 2020

Je comprends pourquoi ils doivent avoir une taille constante , mais je ne comprends pas pourquoi cette taille doit être connue au moment de la compilation . Même C autorise des tableaux de longueur variable sur la pile. En quoi cette limitation aide-t-elle Rust?

Réponses

4 SebastianRedl Dec 03 2020 at 00:26

Même C autorise des tableaux de longueur variable sur la pile.

C peut supporter cela relativement facilement en raison de sa sémantique triviale.

Lorsque vous devez appeler des destructeurs / drop, c'est beaucoup moins trivial, donc Rust ne l'a pas pris en charge au départ car c'est un effort à implémenter et ne donne pas beaucoup d'avantages.

Finalement, Rust supportera cela (et le fait déjà tous les soirs ) grâce à RFC 1909 - rvalues ​​non dimensionnées .