Rust 1.51 公開: Const Generics
(blog.rust-lang.org)Rust 1.51 を紹介します。Rust は、誰もが信頼性が高く効率的なソフトウェアを書けるよう力を与えるプログラミング言語です。
Rust 1.51 は、久しぶりに大きな機能が追加されるバージョンです。
Const Generics MVP
-
従来は、型はライフタイムや型をパラメータとして持つことができました。
-
[T; 32]フィールドを持つ構造体FixedArray<T>を定義できました。 -
しかし
[T; N]のNのような値(ここでは配列の長さ)について、汎用的なコードを書くことはできませんでした。 -
Rust 1.51 からは、整数、文字、boolean 値について汎用的なコードを書けるようになりました。
-
これで
[T; LENGTH]フィールドを持つ構造体Array<T, const LENGTH: usize>を定義できます。 -
Array<u8, 32>を使うと、コンパイラは[u8; 32]フィールドを持つ単相化された(monomorphic)Arrayを生成します。 -
今後は、より多くのコンパイル時定数値を型パラメータとして使えるようにする予定です。
その他の変更点
-
Cargo 機能を追加
-
macOS でコンパイル時間を大幅短縮(デバッグ情報の処理方式を変更)
-
const generics を活用する by-value iterator API を追加
まだコメントはありません。