Por que os itens da pilha devem ter um tamanho conhecido no momento da compilação?

Dec 03 2020

Eu entendo por que eles devem ter tamanho constante , mas não entendo por que esse tamanho deve ser conhecido em tempo de compilação . Mesmo C permite matrizes de comprimento variável na pilha. Em que essa limitação ajuda o Rust?

Respostas

4 SebastianRedl Dec 03 2020 at 00:26

Mesmo C permite matrizes de comprimento variável na pilha.

C pode suportar isso com relativa facilidade por causa de sua semântica trivial.

Quando você tem que chamar destruidores / drop, isso é muito menos trivial, então o Rust não o suportou inicialmente porque é um esforço para implementar e não traz tantos benefícios.

Eventualmente, Rust irá suportar isso (e já o faz todas as noites ) graças ao RFC 1909 - rvalues ​​não dimensionados .