スタック上のアイテムのサイズがコンパイル時にわかっている必要があるのはなぜですか?

Dec 03 2020

なぜそれらが一定のサイズでなければならないのかはわかります、コンパイル時にそのサイズがわからなければならない理由はわかりません。Cでも、スタック上で可変長配列を使用できます。この制限はRustにどのように役立ちますか?

回答

4 SebastianRedl Dec 03 2020 at 00:26

Cでも、スタック上で可変長配列を使用できます。

Cは、その些細なセマンティクスのため、これを比較的簡単にサポートできます。

デストラクタ/を呼び出す必要がある場合drop、これはそれほど簡単ではありません。そのため、Rustは実装の努力であり、それほど多くの利点をもたらさないため、最初はサポートしませんでした。

最終的に、RustはRFC 1909 —サイズのない右辺値のおかげでこれをサポートします(そしてすでに毎晩サポートします)。