Pourquoi les éléments de la pile doivent-ils avoir une taille connue au moment de la compilation?
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
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 .