Dlaczego elementy na stosie muszą mieć rozmiar znany w czasie kompilacji?

Dec 03 2020

Rozumiem, dlaczego muszą mieć stały rozmiar , ale nie rozumiem, dlaczego ten rozmiar musi być znany w czasie kompilacji . Nawet C pozwala na stosowanie tablic o zmiennej długości na stosie. W czym pomaga to ograniczenie Rdzy?

Odpowiedzi

4 SebastianRedl Dec 03 2020 at 00:26

Nawet C pozwala na stosowanie tablic o zmiennej długości na stosie.

C może stosunkowo łatwo to obsługiwać ze względu na swoją trywialną semantykę.

Kiedy musisz wywołać destruktory / drop, jest to o wiele mniej trywialne, więc Rust początkowo go nie obsługiwał, ponieważ jest to trudny do zaimplementowania i nie daje tak wielu korzyści.

Ostatecznie Rust będzie to obsługiwał (i robi to już w nocy ) dzięki RFC 1909 - nieskorygowanym rvalues .